붙여 쓰기 규칙
준랭에서 !는 변수 이름의 일부이자 논리 부정 연산자이고, @는 같음 비교 연산자, !@는 다름 비교 연산자입니다. 이 기호들은 서로 자주 붙어 있게 되는데, 어떻게 해석할지 모호해 보일 수 있습니다.
이 문서는 준랭이 그런 모호함을 어떻게 해소하는지 정리합니다.
왜 이런 규칙이 필요한가요?
!라는 같은 기호가 두 가지 역할을 합니다.
- 변수 이름:
!의 개수로 변수를 식별 (!은 변수 1번,!!은 변수 2번 ...) - 논리 부정 연산자:
!오는not 1
이 두 의미가 같은 코드에서 서로 부딪힐 수 있기 때문에, 인터프리터가 일관된 규칙으로 구분해야 합니다.
핵심 규칙
준랭은 다음 우선순위로 토큰을 해석합니다.
!@가 붙어 있으면 "다르나" 연산자로 먼저 봅니다.- 그 앞에
!가 있다면, 그!는 변수 이름의 일부입니다. - 변수 자체를
@(같나)로 비교하고 싶을 때는준,서로 감쌉니다.
각 규칙을 예시와 함께 살펴봅니다.
!@[식]
!@오오이 코드는 다음과 같이 해석됩니다.
! @ 오오
변수1 == 2!@이 붙어 있지만, 여기서는 !@을 "다르나" 연산자로 보지 않습니다. 대신 !(변수 1번) + @(같나) + 오오(2)로 분해됩니다.
WARNING
직관과 반대로, !@오오는 변수 1번 != 2가 아닙니다. "다르나"로 해석하려면 다음 규칙을 봐야 합니다.
!!@[식]
!!@오오이 코드는 다음과 같이 해석됩니다.
! !@ 오오
변수1 != 2이와 같은 방식으로 !이 두 개 있으면, 앞쪽 ! 하나는 변수 이름이고 뒤쪽 !@은 "다르나" 연산자가 됩니다.
어떻게 해결할까?
!!@오오위 코드는 변수 1번 != 2로 해석된다는 점을 봤습니다. 그런데 만약 변수 2번이 2와 같은지 비교하고 싶다면 어떻게 해야 할까요?
!!@오오를 그대로 쓰면 변수 1번 != 2가 되므로, 이 의도는 표현할 수 없습니다. 이때 준, 서로 변수를 감싸서 의도를 명확히 합니다.
준!!서@오오이 코드는 다음과 같이 해석됩니다.
변수2 == 2TIP
준, 서는 일반적인 식의 우선순위를 바꾸는 데에도 쓰입니다. 자세한 내용은 준,서를 참고하세요.
정리
| 코드 | 해석 |
|---|---|
!@오오 | 변수 1번 == 2 |
!!@오오 | 변수 1번 != 2 |
!!!@오오 | 변수 2번 != 2 |
준!서@오오 | 변수 1번 == 2 (준,서로 명시) |
준!!서@오오 | 변수 2번 == 2 (준,서로 명시) |
준!!서!@오오 | 변수 2번 != 2 (준,서로 명시) |
헷갈릴 땐 준, 서를 쓰세요
어떤 의미인지 한눈에 안 보이면 준, 서로 변수의 범위를 감싸세요. 코드가 길어져도 의도가 명확해집니다.