我分配給寫一些紅寶石代碼將與rspec的試驗中,以下(A段)工作的結果的方法,包括:發生改變的設定器
before do
@book = Book.new
end
describe 'title' do
it 'should capitalize the first letter' do
@book.title = "inferno"
@book.title.should == "Inferno"
end
這是解決方案,但我不不懂它:
class Book
attr_reader :title
def title=(new_title)
words = new_title.split(" ")
words = [words[0].capitalize] +
words[1..-1].map do |word|
little_words = %w{a an and the in of}
if little_words.include? word
word
else
word.capitalize
end
end
@title = words.join(" ")
end
end
我想我是正確的推斷,@book.title = "inferno"
將運行title
方法,並最終在底部的@title
變量創建一個新的價值。我知道這導致@book.title
更新爲「地獄」(大寫),但我不知道爲什麼。這是一種def title
作爲某種可變方法的情況,並且@title
是最終值嗎?這是我最好的猜測。
編輯萬一它不清楚,我不明白爲什麼設置@book.title ='inferno'
導致@book.title
更新爲「地獄」。
你的問題不清楚給我..什麼讓你困惑在這段代碼? –
@ arup-rakshit聲明'@book.title ='inferno''導致'@ book.title'更新爲「地獄」,但我不知道爲什麼。 – macsplean