我有几个类用于在Ruby中包含数据(以及一些方法)。例如:
class Foo
def initialize(bar, biz, baz)
@bar=bar
@biz=biz
@baz=baz
end
end
将这些初始化参数传播到实例变量中的重复方法是否较少?
答案 0 :(得分:2)
一个班轮,但我发现这可能会掩盖一些事情:
@bar,@biz,@baz = bar,biz,baz
答案 1 :(得分:1)
class Foo
def initialize(*args)
raise ArgumentError unless args.length == 3
@bar, @biz, @baz = args
end
end
答案 2 :(得分:0)
一种快捷方法是使用Struct:
class Foo < Struct.new(:bar, :biz, :baz)
# custom methods go here
end
Struct.new将返回一个类,其中为您设置了初始化程序和访问程序(除此之外,它只是一个普通的类)。如果您不需要任何自定义方法,您还可以定义内联结构(例如Foo = Struct.new(:bar, :biz, :baz)
)。