2014-11-01 36 views
0

我按姓氏按字母順序對一列馴鹿進行排序。下面的代碼我困惑:需要幫助瞭解這個數組排序Ruby代碼中發生了什麼?

def sort_reindeer reindeer_names 
    reindeer_names.sort_by { |n| n.split.last } 
end 

我明白了,除了當沒有給出參數,以確定在哪裏把它分解分裂法是如何工作的一切嗎?然後我不知道最後一步是什麼..它是否剛剛返回數組中的最後一個元素?(我知道它不可能是因爲數組返回排序)

所以我想最後一個是做排序不知何故?謝謝您的幫助。

+0

你能展示一個'reindeer_names'的可能樣本嗎? – Surya 2014-11-01 21:34:15

回答

0

String#split爲文檔說

如果[參數]被省略,$ a的值;用來。如果$;爲零(默認爲 ),str被分割爲空白,就像指定了''一樣。

因此,它分裂爲空白。

至於last,它只是返回數組的最後一個元素。 sort_by使用該值對數組進行排序。