2017-04-22 6 views
2

배열에 숫자 집합이있는 경우 어떻게 양수가 음수가되고 양수가 양수가되도록 반전시킬 수 있습니까?Ruby에서 값을 반전하는 방법

아래에서 시도했지만 작동하지 않는 것 같습니다.

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

실제로 각 값의 반대하지만, 결과를 계산 않습니다 코드 다른 어레이에 다시 표시되거나 저장되지 않습니다. 결과 값은'list.each {| x | puts x * (-1)}' –

+1

'을'map'으로 바꾸고, presto를 사용하십시오. –

답변

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] 
관련 문제