創建

2014-05-20 33 views
-1

下面的代碼通過一個RSpec測試自己的titleize方法:創建

class Book 

    attr_reader :title 

    def initialize(title=nil) 
     @title = title && title.capitalize! 
    end 

    def title=(new_title) 
     @title = new_title && new_title.capitalize! 
    end 

end 

我不明白爲什麼,或該代碼在所有與此有關..

  1. attr_reader:我讀了它使 參數通過(So @title)的實例變量是否正確?
  2. 標題& & title.capitalize! :這是幹什麼的?
  3. title =(new_title):爲什麼參數前有一個等號?

回答

0
def title=(new title) 

是定義一個稱爲標題方法=它設置實例變量參數「NEW_TITLE」

此代碼:

@title = new_title && new_title.capitalize! 

不會調用利用功能如果NEW_TITLE是零。 因此,它正在處理的情況是,nil作爲參數傳遞,而不會通過嘗試調用大寫來引發異常。

感嘆號表示大寫方法修改new_title變量。