Actions
Feature #20914
closedConstructor Parameter Shortcuts
Status:
Closed
Assignee:
-
Target version:
-
Description
Constructor Parameter Shortcuts¶
I propose adding a new syntax to simplify the constructor definition in the classes. Defining a constructor often involves repetitive assignments of parameters to instance variables. This pattern is verbose and can easily become cumbersome, especially in classes with many instance variables. The proposed syntax allows instance variables to be automatically assigned from constructor arguments, improving code clarity and brevity.
Basic Usage:
-
Current:
class User def initialize(name, age, email = nil) @name = name @age = age @email = email end end
-
Proposed:
class User def initialize(@name, @age, @email = nil) = end
Named Parameters:
-
Current:
class Product def initialize(name:, price:, description: 'No description available') @name = name @price = price @description = description end end product = Product.new(name: 'Laptop', price: 1000)
-
Proposed:
class Product def initialize(@name:, @price:, @description: 'No description available') = end product = Product.new(name: 'Laptop', price: 1000)
Mixing Named and Positional Parameters:
-
Current:
class Booking def initialize(date, time, customer:, notes: '') @date = date @time = time @customer = customer @notes = notes end end booking = Booking.new('2023-04-01', '14:00', customer: 'Alice', notes: 'First-time client')
-
Proposed:
class Booking def initialize(@date, @time, @customer:, @notes: '') = end booking = Booking.new('2023-04-01', '14:00', customer: 'Alice', notes: 'First-time client')
Actions
Like0
Like0Like0Like0Like0Like0Like0