From: "matheusrich (Matheus Richard) via ruby-core" Date: 2023-10-12T02:41:57+00:00 Subject: [ruby-core:115008] [Ruby master Feature#5825] Sweet instance var assignment in the object initializer Issue #5825 has been updated by matheusrich (Matheus Richard). Maybe a different proposal, but if the `def initialize(@a, @b)` is ugly, how about a new method similar to `attr_{reader,writter}` like ```rb class User init_with :name, :age # or maybe attributes :name, :age end User.new("Matz", 21) ``` We could even have an option like `keyword_init: true` for keyword args. On the other hand, a simple alternative is using the new `Data` class, which already provides this nicety: ```rb User = Data.define(:name, :age) User.new("matz", 21) # or User.new(name: "matz", age: 21) ``` ---------------------------------------- Feature #5825: Sweet instance var assignment in the object initializer https://bugs.ruby-lang.org/issues/5825#change-104875 * Author: goshakkk (Gosha Arinich) * Status: Assigned * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) ---------------------------------------- I'm very excited about this feature in CoffeeScript, and think it might be a nice-to-have thing in Ruby 2.0. That's how I think it would look like: ~~~ruby class Me def initialize(@name, @age, @location); end end ~~~ So we can declare `@variable`s in the initializer method parameters definition to avoid assigning instance variables from method arguments by hand, like: ~~~ruby class Me def initialize(name, age, location) @name = name @age = age @location = location end end ~~~ Want to hear what do you guys think, does that feature worth being included in 2.0? -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/