जवाबों:
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 पर और पढ़ें