嗨我目前正在尋找一個紅寶石測驗解決方案(http://rubyquiz.com/quiz76.html),它對我來說很有意義,但我無法理解爲什麼沒有self
或任何類型的接收器的方法shift, pop, scramble
在munge_word
:爲什麼沒有這種方法的接收器?
class Array
def munge_each
map { |word| word.split(//).munge_word }
end
def munge_word
first, last, middle = shift, pop, scramble
"#{first}#{middle}#{last}"
end
def scramble
sort_by{rand}
end
end
是因爲它開闢了Array類和新增的功能呢?那些方法是類方法嗎?我認爲var1, var2 = var3, var4
的語法只是簡單的多變量賦值。我從來沒有見過這種方法的一面。有人可以解釋嗎?
重要的是要注意,在像first = shift這樣的賦值中,只有等號的右邊將被解釋爲自我的消息。沒有接收器的作業總是簡單的變量賦值,所以這不會調用你的類可能碰巧的任何'first ='方法。 – Chuck
@Chuck:是的,這很重要,謝謝。在初期被它咬了幾次:) –