Ruby 使用手冊

實例變數 Instance variables

實例變數 (instance variable) 以 @ 開頭,作用域僅限定於 self 指示的物件。即使是屬於同一類別的兩個不同物件,他們的實例變數也允許具有不同的值。除非程式員明確地提供其他方法,否則實例變數無法從物件以外變更或查看(Ruby 的實例變數從不公開 (public))。與全域變數一樣,實例變數在初始化前,也有 nil 值。

實例變數不需要宣告, 代表實例變數具有彈性的物件結構;其實,實例變數首次獲指派時,都是動態加入至物件的。

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>

請注意,呼叫 set_bar 方法前,i 並不會為 @bar 回報值。

Copyright (c) 2005-2008 Mark Slagell,中文翻譯 Ruby Taiwan 社群

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license is included in the section entitled "GNU Free Documentation License."