2012-04-20 63 views
0

我的理解是,當引用數組中的數據時,計數從零開始。例如,array = ["cat", "dog", "fish"]中的第零個對象將是"cat"爲什麼用這種方式命名的「排序塊」參數?

我正在處理的教程說這樣做(假設我們按字符串的長度排序)。

array.sort {|value1,value2| value1.length <=> value2.length } 

排序它,我怎麼想,但我的問題是,如果在陣列計數爲「0」開始,爲什麼我們不能做這樣的:

array.sort {|value0,value1| value0.length <=> value1.length } 

回答

4

value1value2只是數組中每對值的名稱或佔位符。你可以把另一個你喜歡的地方:

array.sort {|a,b| a.length <=> b.length } 
+0

謝謝,這清除它!所以當我分配| A,B |它是否在數組中的每個值上運行比較? – 2012-04-20 03:43:20

+0

@JeffH .:欄中的內容是塊參數,它們是任何其他變量。 – Linuxios 2012-04-20 03:46:33

+0

@JeffH。是的,對於陣列中的每個A,B,它都使用'<=>'運算符對它們進行排序。我相信它類似於Java的'compareTo()'方法。 – 2012-04-20 03:56:36

相關問題