2017-04-22 7 views
2

配列に数字のセットがある場合、正のものが負で負のものが正の値になるように、どのように逆転させることができますか?Rubyで値を逆にする方法

私は以下を試しましたが、うまくいかないようです。

def invert(list) 
    list.each {|x| x * (-1)} 
end 
+2

実際に各値の反対が、結果を計算しないあなたのコード表示されず、別の配列に保存されません。結果の値は 'list.each {| x | puts x *(-1)} ' –

+1

'を 'map'に変更してください。 –

答えて

11

だから、簡単な

[1, 5, 7, -3, -47, 0].map { |i| -i } 
=> [-1, -5, -7, 3, 47, 0] 

でも短いです。

[1, 5, 7, -3, -47, 0].map(&:[email protected]) 
=> [-1, -5, -7, 3, 47, 0] 

それは単項マイナスメソッド

1

リスト自体を修正するmap!を使用して、新しいリストを返しますmapを使用してい

list = [1, 2, 3] 
new_list = list.map {|i| -i } 
# list still be [1, 2, 3] 
# new list = [-1, -2, -3] 
list.map! {|i| -i } 
# list changed to [-1, -2, -3] 
関連する問題