2011-11-13 14 views
0

私はそれぞれのメソッドの機能について興味があります。値の代わりに変数を返します

a = 1 
b = 2 

[a,b].each do |x| 
    puts x 
end 

変数を返す「」ではなく値1にルビーのための方法はありますか?

+2

変数名は無関係です。必要な場合は、キーを値にマップできるように、ハッシュが必要です。 – d11wtq

答えて

4

1を返しません。[1, 2]を返します。eachメソッドは、反復処理を返します。

> a = 1 
=> 1 
> b = 2 
=> 2 
> r = [a, b].each { |x| puts x } 
1 
2 
=> [1, 2] 
> p r.inspect 
"[1, 2]" 

あなたは配列値、または反復ブロック内の変数から「後方に行く」ことができれば、あなたが求めている場合は、私がどのように表示されません。キーと値のペアを持つマップを反復処理していた場合は、そうです。

> m = { a: 1, b: 2} 
=> {:a=>1, :b=>2} 
> m.each { |k, v| p "#{k} = #{v}" } 
"a = 1" 
"b = 2" 
+1

私は彼がブロック内で話していると思います。「each」からの戻り値ではありません。 –

+0

@muistooshortええ、それについてのコメントを追加し、それを実現しました。 –

関連する問題