2012-04-20 5 views
0

私の理解では、配列内のデータを参照するとき、カウントはゼロから開始されました。たとえば、array = ["cat", "dog", "fish"]の0番目のオブジェクトは"cat"になります。このように名前が付けられた「ソートブロック」のパラメータはなぜですか?

私が取り組んでいるチュートリアルでは、このようにすると言います(たとえば、長さを文字列で並べ替えてみましょう)。

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

このは私がそれをしたいが、配列にカウントすることは「0」で始まる場合、私の質問は、どのように、どのようにソートそれを来るん我々はこのようにそれをやっていません。

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

答えて

4

value1およびvalue2は、配列内の値の各ペアの名前またはプレースホルダにすぎません。あなたはそこに好きな別の人を置くことができます:

+0

ありがとう、それはそれをクリアします!だから私が| A、B |それは配列の各値の比較を実行しますか? –

+0

@JeffH:バーの中のものはブロック引数です。これは他の変数と同じです。 – Linuxios

+0

@ JeffH。うん、配列内の各A、Bに対して、 '<=>'演算子を使って並べ替えます。私が信じるのは、Javaの 'compareTo()'メソッドに似ています。 –

関連する問題