Jak wywołać metodę, która jest wartością skrótu?
Wcześniej pytałem o sprytny sposób na wykonanie metody w danych warunkach ”Ruby sprytny sposób na wykonanie funkcji pod warunkiem. ”
Rozwiązania i czas reakcji były świetne, jednak po wdrożeniu posiadanie hasha lambd szybko staje się brzydkie. Więc zacząłem eksperymentować.
Działa następujący kod:
def a()
puts "hello world"
end
some_hash = { 0 => a() }
some_hash[0]
Ale jeśli zawijam to w klasie, przestaje działać:
class A
@a = { 0 => a()}
def a()
puts "hello world"
end
def b()
@a[0]
end
end
d = A.new()
d.b()
Nie rozumiem, dlaczego powinien przestać działać, czy ktoś może zasugerować, jak to działa?