두 변수의 값 서로 바꾸기
dev | 2023-06-03
프로그래밍 커리큘럼 초기에 나오는 주제다. 보통 임시 변수를 쓴다. temp
에 a
를 넣고 a
에 b
를 넣고 b
에 temp
를 넣는 식이다. 숫자라면 임시 변수 없이도 가능한데, 더했다 빼거나, 곱했다 나누기, 또는 XOR 연산을 사용할 수 있다.
이게 궁금했던 것은 아니고 아름다운 방법은 없나 찾아봤는데 구조 분해(destructuring)를 쓰면 한줄에 처리할 수 있다.
// JavaScript
[a, b] = [b, a];
다른 언어도 찾아봤다. 요즘 언어들은 대부분 각자의 방법으로 기능을 제공하고 있다.
# Python, Ruby, Go
a, b = b, a
// PHP
[$a, $b] = [$b, $a];
// C#
(a, b) = (b, a);
// Swift
(a, b) = (b, a)
// Kotlin
a = b.also { b = a }
// Rust
let (a, b) = (b, a);
다 돌려본거는 아니다.
Comments
PHP… ㅋㅋ
php도 더 적은타이핑으로 가능합니다. [$a, $b] = [$b, $a];
김진원님 알려주셔서 감사합니다. 본문을 수정했습니다.