methodを使用する場合Struct
と定義する場合の利点と欠点は何ですか?initialize
引数が欠落している場合にコードが少なくなり、発生しないことがすでにわかります。
構造体の使用:
class Fruit < Struct.new(:name)
end
> Fruit.new.name
=> nil
> Fruit.new('apple').name
=> "apple"
初期化の使用:
class Fruit
attr_accessor :name
def initialize(name)
@name = name
end
end
> Fruit.new.name
ArgumentError: wrong number of arguments (0 for 1)
> Fruit.new('apple').name
=> "apple"
あなたの考えは何ですか?Struct
プロジェクトで頻繁に使用していますか?