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
经常在项目中使用?