मैं जानना चाहता हूं कि रूबी मॉड्यूल के इंस्टेंस वेरिएबल कैसे कई वर्गों में व्यवहार करते हैं जो इसे 'मिश्रण' करते हैं। मैंने इसका परीक्षण करने के लिए एक नमूना कोड लिखा:क्या मॉड्यूल के इंस्टेंस वैरिएबल क्लास के बीच कक्षा के बीच साझा किया जाता है?
# Here is a module I created with one instance variable and two instance methods.
module SharedVar
@color = 'red'
def change_color(new_color)
@color = new_color
end
def show_color
puts @color
end
end
class Example1
include SharedVar
def initialize(name)
@name = name
end
end
class Example2
include SharedVar
def initialize(name)
@name = name
end
end
ex1 = Example1.new("Bicylops")
ex2 = Example2.new("Cool")
# There is neither output or complains about the following method call.
ex1.show_color
ex1.change_color('black')
ex2.show_color
यह क्यों काम नहीं करता है? और क्या कोई बता सकता है कि @color
के वास्तविक व्यवहार Example$
उदाहरणों में वास्तविक व्यवहार क्या होगा?
काफी स्पष्ट स्पष्टीकरण! तो अगर मैंने बनाया मॉड्यूल अन्य वर्ग के साथ मिश्रण के लिए है। मुझे 'इंस्टेंस वैरिएबल' को 'इंस्टेंस विधि' के अंदर परिभाषित करना चाहिए, क्या मेरी समझ सही है? – steveyang
हां, बस वर्तमान स्वयं की गणना करें और फिर आप समझ सकते हैं कि आवृत्ति चर कहाँ रखा जाएगा। – megas
धन्यवाद। मैं सिर्फ रूबी को सीख रहा हूं, वर्तमान में 'वर्तमान स्वयं' भाग के लिए नहीं। 'जावास्क्रिप्ट' की तुलना में अधिक सुरुचिपूर्ण भाषा लगता है। – steveyang