def method
a = 3
b = 4
some_method_that_gives # [a, b]
end
22
A
Odpowiedz
39
to generuje szereg symboli, przedstawiające zmienne. W twoim przypadku: [:a, :b]
4
local_variables
zawiera listę zmiennych lokalnych, ale wymienia je przed zdefiniowaniem. Zobacz to:
p local_variables
a = 1
p local_variables
ten wyprowadza
[:a]
[:a]
który nie może być to, czego oczekują. Kontrastować z defined?
p defined? a
a = 1
p defined? a
który wyprowadza bardziej oczekiwany
nil
"local-variable"
nie mogę uwierzyć, że nie znaleźliśmy go wcześniej. Dzięki! – Cheng
Niektóre wersje Rubiego wypisują tablicę łańcuchów zamiast tablicy symboli. Ruby 2.0 i 1.9 używają symboli, ale Ruby 1.8.7 użytych ciągów. – inquiryqueue