जब मैंतक पहुंचना एक वर्ग 'निरंतर चर
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
है वहाँ Foo::CONSTANT_NAME
पहुंचने का एक तरीका है या मैं मूल्य का उपयोग करने के एक वर्ग विधि बनाने के लिए है?
जब मैंतक पहुंचना एक वर्ग 'निरंतर चर
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
है वहाँ Foo::CONSTANT_NAME
पहुंचने का एक तरीका है या मैं मूल्य का उपयोग करने के एक वर्ग विधि बनाने के लिए है?
क्या आप पोस्ट पूरी तरह से काम करना चाहिए:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
आप अपने वर्ग के भीतर अतिरिक्त कोड है कि निरंतर होता है लिख रहे हैं, तो आप यह एक वैश्विक की तरह व्यवहार कर सकते हैं।
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
आप वर्ग के लगातार बाहर पहुँच रहे हैं, यह वर्ग के नाम के साथ उपसर्ग, दो कोलन
Foo::MY_CONSTANT #=> hello
वहाँ
Foo::CONSTANT_NAME
तक पहुँचने के लिए एक रास्ता है, जिसके बाद?
हाँ, वहाँ है:
Foo::CONSTANT_NAME
मिलाएं जब मैं इसे एक्सेस करने का प्रयास कर रहा हूं, तो मुझे चेतावनी दी जा रही है। चेतावनी: पहले से ही निरंतर टेस्टडाटा :: CONSTANT_VAR प्रारंभ किया गया है यह चर कहीं और शुरू नहीं हुआ है। मुझे यह चेतावनी क्यों है? –
कुछ विकल्प:
class Foo
MY_CONSTANT = "hello"
end
Foo::MY_CONSTANT
# => "hello"
Foo.const_get :MY_CONSTANT
# => "hello"
x = Foo.new
x.class::MY_CONSTANT
# => "hello"
x.class.const_defined? :MY_CONSTANT
# => true
x.class.const_get :MY_CONSTANT
# => "hello"
हम्म, मैं गलत लिख दिया जाना चाहिए जब मैंने पहले परीक्षण किया गया। ओउप्स :) –
niiiceee आदमी! आप मुझे फिर से सहेजते हैं: डी –
इसके लिए वास्तव में स्थिर होने के लिए, मूल्य के अंत में एक .freeze जोड़ने के लिए मत भूलना! 'CONSTANT_NAME = [" a "," b "," c "]। फ्रीज' – mutexkid