मैं सिर्फ प्रोग्राम सीख रहा हूं और रूबी को आजमाने का फैसला किया है। मुझे यकीन है कि यह एक बेवकूफ सवाल है, लेकिन प्रशिक्षक सेटटर और गेटर विधियों के बारे में बात कर रहा है, और मैं उलझन में हूं। यहाँ उदाहरण है:रुबी सेटर और गेटर विधियों को सीखने/समझने की कोशिश
class Human
def noise=(noise)
@noise = noise
end
def noise
@noise
end
end
इस से, वर्ग instantiated है, और मैं इस डालता कर सकते हैं:
man = Human.new
man.noise=("Howdie!")
puts man.noise
यह Howdie!
अब में जो परिणाम क्या मुझे confuses कि प्रशिक्षक है गेटटर विधि (दो तरीकों में से 2) के बिना कह रहा है, आवृत्ति चर @noise के साथ बातचीत करने का कोई तरीका नहीं है।
class Human
def noise=(noise)
@noise = noise
end
end
man = Human.new
puts man.noise=("Howdie!")
इस रूप में जब गेटर विधि में इसका इस्तेमाल किया एक ही काम करता है:
लेकिन जब मैं गेटर विधि निकालने के लिए, मैं अभी भी @noise उपयोग करने में सक्षम हूँ, उदाहरण देखें।
तो अब मैं उलझन में हूं। गेटर की आवश्यकता क्यों है? इसके बिना इंस्टेंस वैरिएबल तक पहुंचने में सक्षम नहीं होने के कारण प्रशिक्षक का क्या अर्थ है? क्या यह संभव है कि वह रूबी के पुराने संस्करण का उपयोग कर रहा है?
आपकी मदद के लिए अग्रिम धन्यवाद।
क्या आप वास्तव में @noise तक पहुंचने में सक्षम हैं, या आप जो फ़ंक्शन कॉल कर रहे हैं उसका दुष्प्रभाव देख रहे हैं ... – LVB