在此之前,我询问了一种在给定条件下执行方法的巧妙方法 " Ruby是一种在条件上执行函数的巧妙方法."
解决方案和响应时间很长,但是,在实现时,拥有lambda的哈希会很快变得丑陋.所以我开始尝试.
以下代码有效:
def a()
puts "hello world"
end
some_hash = { 0 => a() }
some_hash[0]
Run Code Online (Sandbox Code Playgroud)
但是,如果我将它包装在一个类中它停止工作:
class A
@a = { 0 => a()}
def a()
puts "hello world"
end
def b()
@a[0]
end
end
d = A.new()
d.b()
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它应该停止工作,任何人都可以建议如何使它工作?