두 변수의 값 서로 바꾸기

dev | 2023-06-03

프로그래밍 커리큘럼 초기에 나오는 주제다. 보통 임시 변수를 쓴다. tempa를 넣고 ab를 넣고 btemp를 넣는 식이다. 숫자라면 임시 변수 없이도 가능한데, 더했다 빼거나, 곱했다 나누기, 또는 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

  • 김정규 2023-06-03

    PHP… ㅋㅋ

  • 김진원 2023-06-03

    php도 더 적은타이핑으로 가능합니다. [$a, $b] = [$b, $a];

  • 신현석 2023-06-03

    김진원님 알려주셔서 감사합니다. 본문을 수정했습니다.

Post a comment

:

: 공개 되지 않습니다. Gravatar를 표시 합니다.

:

: HTML 태그를 사용할 수 없습니다.