配列内の各値を 2 倍にする必要があります。double がコマンドではないことは知っていますが、他に何を使用すればよいかわかりません。
odds = [1,3,5,7,9]
array.each do |x|
x += double
print "#{x}"
end
配列内の各値を 2 倍にする必要があります。double がコマンドではないことは知っていますが、他に何を使用すればよいかわかりません。
odds = [1,3,5,7,9]
array.each do |x|
x += double
print "#{x}"
end
最も簡単な方法は、Array#mapとKernel#pを使用して配列を反復処理することです。例えば:
odds = [1, 3, 5, 7, 9]
odds.map { |i| p i*2 }
さらに制御が必要な場合は、ブロックを処理するか列挙子を返すカスタム メソッドを作成できます。例えば:
def double *array
array.flatten!
block_given? ? array.map { |i| yield i*2 } : array.map { |i| i*2 }.to_enum
end
enumerator = double 1, 2, 3
#=> #<Enumerator: ...>
enumerator.each { |i| p i }
#=> [2, 4, 6]
double(1, 2, 3) { |i| p i }
#=> [2, 4, 6]
これはおそらくあなたのユースケースではやり過ぎですが、列挙子とブロックを操作したい場合に知っておくと便利なテクニックです。それが役に立てば幸い!