जवाबों:
titleएक स्थानीय चर है। वे केवल इसके दायरे में मौजूद हैं (वर्तमान ब्लॉक)
@title एक उदाहरण चर है - और कक्षा के भीतर सभी तरीकों के लिए उपलब्ध है।
आप यहाँ और अधिक पढ़ सकते हैं: http://strugglingwithruby.blogspot.dk/2010/03/variables.html
रूबी ऑन रेल्स में - अपने चर को अपने नियंत्रक में उदाहरण चर के रूप में घोषित करना ( @title) उन्हें आपके विचार के लिए उपलब्ध कराता है।
@titleजब आप चाहते हैं कि आपका चर आपके विचारों में उपलब्ध हो तो अपने नियंत्रकों में उपयोग करें ।
व्याख्या यह है कि @titleएक उदाहरण चर है और titleएक स्थानीय चर है और रेल नियंत्रकों से विचारों के लिए उदाहरण चर उपलब्ध कराता है। ऐसा इसलिए होता है क्योंकि टेम्पलेट कोड (erb, haml, आदि) को वर्तमान नियंत्रक उदाहरण के दायरे में निष्पादित किया जाता है।
अंतर चर के दायरे में है। @Version वर्ग उदाहरण के सभी तरीकों के लिए उपलब्ध है।
संक्षिप्त उत्तर, यदि आप नियंत्रक में हैं और आपको चर को देखने के लिए उपलब्ध कराने की आवश्यकता है तो उपयोग करें @variable।
अधिक लंबे उत्तर के लिए यह प्रयास करें: http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html
@variableमाणिक में s को उदाहरण चर कहा जाता है। जिसका अर्थ है कि आप इन चर को कक्षा के अंदर किसी भी METHOD में एक्सेस कर सकते हैं। [कक्षा में सभी तरीकों के पार]
बिना @चिन्ह वाले चर को स्थानीय चर कहा जाता है, जिसका अर्थ है कि आप इन स्थानीय चर को केवल THAT DECLARED METHOD के भीतर एक्सेस कर सकते हैं। स्थानीय दायरे तक सीमित।
उदाहरण चर के उदाहरण:
class Customer
def initialize(id, name, addr)
@cust_id = id
@cust_name = name
@cust_addr = addr
end
def display_details
puts "Customer id #{@cust_id}"
puts "Customer name #{@cust_name}"
puts "Customer address #{@cust_addr}"
end
end
ऊपर के उदाहरण में @cust_id, @cust_name, @cust_addrवर्ग के भीतर एक और तरीका में पहुंचा जा सकता है। लेकिन स्थानीय चर के साथ एक ही चीज सुलभ नहीं होगी।
चर स्कोप क्या है के बारे में एक ट्यूटोरियल ? कुछ विवरणों को अच्छी तरह से प्रस्तुत करता है, बस संबंधित को यहां संलग्न करें।
+------------------+----------------------+
| Name Begins With | Variable Scope |
+------------------+----------------------+
| $ | A global variable |
| @ | An instance variable |
| [a-z] or _ | A local variable |
| [A-Z] | A constant |
| @@ | A class variable |
+------------------+----------------------+
स्थानीय वैरिएबल केवल इनिशियलाइज़ेशन के ब्लॉक के भीतर से पहुँचा जा सकता है। इसके अलावा एक स्थानीय चर एक निचले मामले पत्र (az) या अंडरस्कोर (_) से शुरू होता है।
और उदाहरण चर का एक उदाहरण है selfऔर @इसके साथ शुरू होता है भी एक उदाहरण चर वस्तु के अंतर्गत आता है। इंस्टेंस वैरिएबल वे हैं जो आप अर्थात .sendआदि पर कार्य करते हैं
उदाहरण:
@user = User.all
@userउदाहरण चर रहा है
और Uninitialized इंस्टेंस चर का मान होता है Nil
@titleऔर के बीच अंतर की व्याख्या करता है title?
@titleयाtitle
@ चर स्थानीय चर हैं, बिना उदाहरण के चर हैं।
Http://ruby.about.com/od/variables/a/Instance-Variables.htm पर और पढ़ें