之前,我询问过一种在给定条件下执行方法的巧妙方法”Ruby 是一种根据条件执行函数的巧妙方法."
解决方案和响应时间都很棒,但在实施后,拥有 lambda 哈希值很快就会变得丑陋。所以我开始尝试。
以下代码有效:
def a()
puts "hello world"
end
some_hash = { 0 => a() }
some_hash[0]
但如果我将其包装在一个类中,它将停止工作:
class A
@a = { 0 => a()}
def a()
puts "hello world"
end
def b()
@a[0]
end
end
d = A.new()
d.b()
我不明白为什么它应该停止工作,任何人都可以建议如何让它工作吗?
该代码不起作用。它执行a
在它被添加到哈希中时,而不是在从哈希中检索它时(在 irb 中尝试)。
它在课堂上不起作用,因为没有a
在类上定义的方法(您最终定义了一个方法a
在实例上。
尝试实际使用 lambda,例如
{0 => lambda { puts "hello world" }}
instead
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)