[swift] 맵 함수를 사용하여 배열의 값에 특정한 값을 빼고 절댓값으로 변환하기

Swift에서 배열의 모든 값에 특정한 값을 빼고, 그 결과를 절댓값으로 변환하고자 할 때, 맵 함수를 사용할 수 있습니다. 맵 함수는 배열의 각 요소에 대해 동작을 적용하고, 변환된 값을 새로운 배열로 반환해주는 기능을 제공합니다. 이를 사용하면 간편하게 배열의 요소를 변환할 수 있습니다.

다음은 맵 함수를 사용하여 배열의 값에 특정한 값을 빼고 절댓값으로 변환하는 예시 코드입니다.

let numbers = [1, -2, 3, -4, 5]
let subtractedNumbers = numbers.map { abs($0 - 10) }
print(subtractedNumbers)

위 코드에서는 먼저 numbers라는 배열을 정의하고, 맵 함수를 사용하여 각 요소에 대해 절댓값으로 변환한 값을 저장하는 subtractedNumbers 배열을 생성합니다. 맵 함수 내부에서는 $0을 통해 배열의 각 요소에 접근하고, 해당 요소에서 10을 뺀 뒤 절댓값으로 변환합니다.

코드를 실행하면, [9, 12, 7, 14, 5]라는 결과가 출력됩니다. 각 요소별로 10을 뺀 후 절댓값으로 변환한 값이 새로운 배열로 생성되었습니다.

만약, 이 예시 코드에서 subtractedNumbers 배열 대신 원본 배열 numbers를 변경하고 싶을 경우, map 대신 mutatingMap 함수를 사용할 수 있습니다. mutatingMap 함수는 원본 배열을 수정할 수 있도록 해줍니다.

var numbers = [1, -2, 3, -4, 5]
numbers.mutatingMap { $0 = abs($0 - 10) }
print(numbers)

위 코드에서는 mutatingMap 함수를 사용하여 각 요소에 대해 절댓값으로 변환한 값을 저장하는 것이 아니라, 원본 배열 numbers 자체를 변경합니다. 이후, numbers를 출력하면 [9, 12, 7, 14, 5]라는 결과가 나옵니다.

맵 함수를 사용하면 배열의 값에 간단하게 연산을 적용하여 변환할 수 있으므로, 변환 작업을 효율적으로 수행할 수 있습니다.


참고 자료