-3

以下の Array メソッドと混同しています。簡単なスニペットの助けを借りて、それらが互いにどのように異なるかを理解するのを手伝ってくれる人はいますか?

  • array.sortarray.sort { | a,b | block }
  • array.to_aarray.to_ary
  • array.sizearray.length
  • array.reversearray.reverse_each {|item| block }
  • array.fill(start [, length] ) { |index| block }
    array.fill(range) { |index| block }
4

1 に答える 1

2

Array のドキュメントを読んでください。

選別:

a=[3,1,2]
a.sort              # => [1, 2, 3] 
a.sort{|a,b| b<=>a} # => [3, 2, 1] 

要素を並べ替える独自の方法が必要な場合は、2 番目のものを使用します。

to_a 対 to_ary:

class Foo < Array;end
b=Foo[1,2]
b.to_ary.class # returns self
b.to_a.class   # converts to array

サイズと長さはまったく同じです。

reverse_each は、reverse.each とほとんど同じです。

配列の一部だけを埋めたい場合は、 Array.fill を arangeまたはで呼び出すことができますstart,length。これらは、同じことを達成するためのさまざまな方法です。

(["a"]*10).fill("b",2..7)
(["a"]*10).fill("b",2,6)

どちらも戻り["a", "a", "b", "b", "b", "b", "b", "b", "a", "a"]ます。

于 2013-01-12T09:36:17.940 に答える