一個實變量由@開頭,它的范圍限制在?self?對象內(nèi).兩個不同的對象,即使屬于同一個類,也可以擁有不同值的實變量.從對象外部來看,實變量不能改變甚至觀察(比如,?Ruby的實變量從來不是公用的),除非方法由程序員明確聲明.像全局變量一樣,實變量在初始前的值是nil.
Ruby的實變量用不著聲明.這暗含著對象的彈性結(jié)構(gòu).實際上,每個實變量都是在第一次出現(xiàn)時動態(tài)加入對象的.
ruby>?class?InstTest
????|???def?set_foo(n)
????|?????@foo?=?n
????|???end
????|???def?set_bar(n)
????|?????@bar?=?n
????|???end
????|?end
???nil
ruby>?i?=?InstTest.new
???#<InstTest:0x83678>
ruby>?i.set_foo(2)
???2
ruby>?i
???#<InstTest:0x83678?@foo=2>
ruby>?i.set_bar(4)
???4
ruby>?i
???#<InstTest:0x83678?@foo=2,?@bar=4>?
注意上例中直到調(diào)用了?set_bar方法?i?才報告?@bar?的值.
版權(quán)聲明:RUBY文檔中心的所有文章標(biāo)明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計劃,若轉(zhuǎn)載請注明;標(biāo)明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計劃;標(biāo)明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請及時跟主持人聯(lián)系,我們會盡快更正。
?