📖
[Feature #15192] インスタンス変数の設定を簡単にできるショートハンドがほしいという要望
[Feature #15192] Introduce a new "shortcut assigning" syntax to convenient setup instance variables
- インスタンス変数の設定を簡単にできるショートハンドがほしいという要望
- イメージ以下のようなコード
class Person
def initialize(name:, age:, gender:, country:)
@name = name
@age = age
@gender = gender
@country = country
end
end
- 以下のようなショートハンドの提案
class Person
# 仮引数に @ を付ける
def initialize(@name:, @age:, @gender:, @country:)
end
# 以下と同じ
# def initialize(name:, age:, gender:, country:)
# @name = name
# @age = age
# @gender = gender
# @country = country
# end
# it should also work on position style arguments
def initialize2(@name, @age, @gender, @country)
end
end
- チケット自体は4年前のもの
- matz 的には以下のような構文を提案している
def initialize(name: as @name, age: as @age)
...
end
- こういう構文はほしいんだけど、イマイチいい書き方が思いつかない
-
Struct
やData
を継承するのが今だといいんですかねー
class Person < Data.define(:name, :age, :gender, :country)
end
pp Person.new(name: "homu", age: 14, gender: "女性", country: :japan)
Discussion