軌道
/
Ruby
Ruby
/
課程大綱
/
實例變數
實例

實例變數 在 Ruby

7 個練習

關於 實例變數

重點:

  • 呼叫類別的.new方法來建立物件實例時,所有引數都會傳給.initialize方法,用來初始化該實例的狀態。
  • 實例變數的名稱會加上@前綴。
  • 在明確設定之前,實例變數的預設值是nil。
  • 實例變數預設是私有的,應該透過取值方法和設定方法來操作。
class Backpack
  initialize(owner)
    @owner = owner
  end

  def owner
    @owner
  end

  def owner=(new_owner)
    @owner = new_owner
  end
end
  • 名稱以=結尾的方法會被 Ruby 視為設定方法,並允許以「語法糖」的方式使用指定語法,例如Backpack.new("Sven").owner = "Ayah"。 注意owner和=之間的空格,而真正的方法名稱是owner=。
  • 可以使用attr_reader、attr_writer和attr_accessor方法來建立取值方法和設定方法:
    • attr_reader:為列出的符號建立取值方法
    • attr_writer:為列出的符號建立設定方法
    • attr_accessor:為列出的符號建立取值方法和設定方法
class Backpack
  attr_accessor :owner

  initialize(owner)
    @owner = owner
  end
end
  • 為什麼要使用取值方法和設定方法,而不是直接使用實例變數?
    • 如果上一個範例有打字上的錯誤(也就是所謂的「typo」,例如@ownar),它就會默默地失敗,可能在系統中埋下 bug。
    • 取值方法和設定方法讓這件事變得明確,一旦打錯字就會拋出錯誤。

參考資料

初始化物件實例

實例變數

透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 實例變數

練習已鎖定

再解鎖 5 個練習,就能練習 實例變數