与定义initialize
方法相比,使用Struct
有什么优缺点?Ruby:结构与初始化
我已经可以看到,它涉及缺少变量时更少的代码和不涨价:
使用结构:
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
吗?
你的用例是什么? Struct'对于那些没有太多附加逻辑的事物来说是很棒的。 – tadman
当你需要使用初始化函数定义类的时候,我只是想要你的想法。由于使用'Struct'似乎是“更性感”,所以我想知道下拉菜单,如果有的话。 –
如果你有一个特定的用例,那是一个关于主题的问题。如果你只是想讨论一下各种实现的优缺点,那不适合问答格式。 –