मैं बेहतर रूबी समझने की कोशिश कर पर काम कर रहा है और यहां के भीतर एक वैश्विक सेटिंग के कुछ मैं कुछ समस्या आ रही है:एक proc
$SAFE = 1
puts $SAFE # 1
proc {
$SAFE = 2
puts $SAFE # 2
}.call
puts $SAFE # 1
ऊपर कोड आंशिक रूप से ERB के स्रोत बेहतर उजागर करने के लिए फिर से लिखा से लिया जाता है उदाहरण। मूल रूप से proc के भीतर $SAFE
का मान निर्धारित कर सकता है कि जो भी मूल्य चाहता है और proc के बाद, SAFE
का मान वापस प्रोसेस से पहले वापस लौटाता है।
, तो इसके बजाय शब्द $SAFE
मैं एक अलग शब्द के लिए इसे बदल, इस तरह के रूप $DOOR
का उपयोग करने का:
$DOOR = 1
puts $DOOR
proc {
$DOOR = 2
puts $DOOR
}.call
puts $DOOR
तो proc के बाद $DOOR
का मूल्य 2 और नहीं 1. क्यों दोनों के बीच अंतर उदाहरण?
ठीक है, वही है जो मैं जानना चाहता था। मैं स्थिरता की तलाश कर रहा था और उम्मीद कर रहा था, लेकिन इसके बजाय मुझे लगता है कि हम एक जादू यूनिकॉर्न चीज़ के साथ काम कर रहे हैं। :-) – Francois