如果数组中有一组数字,你怎么能将它们反转,使正数为负数,然后为负数。
我已尝试过以下内容,但似乎无法正常工作。
def invert(list)
list.each {|x| x * (-1)}
end
答案 0 :(得分:11)
这么简单
[1, 5, 7, -3, -47, 0].map { |i| -i }
=> [-1, -5, -7, 3, 47, 0]
更短。
[1, 5, 7, -3, -47, 0].map(&:-@)
=> [-1, -5, -7, 3, 47, 0]
这是一元减法
答案 1 :(得分: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]