gpt4 book ai didi

ruby - 如何避免实例变量初始化丑陋

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:30 24 4
gpt4 key购买 nike

我看到这个在我的代码中一直弹出

class Foo
def initialize(foo)
@foo = foo
end
#...
end

这还不算太糟,但会变得更糟:

class Foo
def initialize(foo,baz,bar,a,b,c,d)
@foo = foo
@baz = baz
@bar = bar
#etc...

你可以通过做类似的事情来解决这个问题

@foo, @baz, @bar = foo, baz, bar

但即使那样感觉也不对,打字也很烦人。有没有更好的方法根据参数定义实例变量?

编辑:这个问题似乎有两种不同的解决方案。见:

最佳答案

您可能需要考虑使用 Struct :

class Foo < Struct.new(foo,baz,bar,a,b,c,d)
end

foo = Foo.new(1,2,3,4,5,6,7)
foo.bar #=> 2

根本不需要定义额外的initialize方法...

关于ruby - 如何避免实例变量初始化丑陋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com