Pracuję na próby, aby lepiej zrozumieć, Ruby i tutaj coś mam problemy z:ustawienia globalne w proc
$SAFE = 1
puts $SAFE # 1
proc {
$SAFE = 2
puts $SAFE # 2
}.call
puts $SAFE # 1
Powyższy kod jest częściowo wzięty ze źródła ERB jest przepisany w celu lepszego podkreślenia przykład. Zasadniczo w ramach proc można ustawić wartość $SAFE
na dowolną wartość i po proc, wartość SAFE
wraca do tego, co było przed proc.
Jeśli zamiast używania słowa $SAFE
ją zmienić na inną propozycją, takich jak $DOOR
:
$DOOR = 1
puts $DOOR
proc {
$DOOR = 2
puts $DOOR
}.call
puts $DOOR
wówczas wartość $DOOR
po proc jest 2 a nie 1. Dlaczego różnica między dwoma przykłady?
OK, dokładnie to, co chciałem wiedzieć. Patrzyłem i miałem nadzieję na konsekwencję, ale tutaj widzę, że mamy do czynienia z magiczną jednorożcem. :-) – Francois