Skip to content

붙여 쓰기 규칙

준랭에서 !변수 이름의 일부이자 논리 부정 연산자이고, @같음 비교 연산자, !@다름 비교 연산자입니다. 이 기호들은 서로 자주 붙어 있게 되는데, 어떻게 해석할지 모호해 보일 수 있습니다.

이 문서는 준랭이 그런 모호함을 어떻게 해소하는지 정리합니다.

왜 이런 규칙이 필요한가요?

!라는 같은 기호가 두 가지 역할을 합니다.

  • 변수 이름: !의 개수로 변수를 식별 (!은 변수 1번, !!은 변수 2번 ...)
  • 논리 부정 연산자: !오not 1

이 두 의미가 같은 코드에서 서로 부딪힐 수 있기 때문에, 인터프리터가 일관된 규칙으로 구분해야 합니다.

핵심 규칙

준랭은 다음 우선순위로 토큰을 해석합니다.

  1. !@가 붙어 있으면 "다르나" 연산자로 먼저 봅니다.
  2. 그 앞에 !가 있다면, 그 !는 변수 이름의 일부입니다.
  3. 변수 자체를 @(같나)로 비교하고 싶을 때는 , 로 감쌉니다.

각 규칙을 예시와 함께 살펴봅니다.

!@[식]

junlang
!@오오

이 코드는 다음과 같이 해석됩니다.

text
! @ 오오
변수1 == 2

!@이 붙어 있지만, 여기서는 !@을 "다르나" 연산자로 보지 않습니다. 대신 !(변수 1번) + @(같나) + 오오(2)로 분해됩니다.

WARNING

직관과 반대로, !@오오변수 1번 != 2아닙니다. "다르나"로 해석하려면 다음 규칙을 봐야 합니다.


!!@[식]

junlang
!!@오오

이 코드는 다음과 같이 해석됩니다.

text
! !@ 오오
변수1 != 2

이와 같은 방식으로 !이 두 개 있으면, 앞쪽 ! 하나는 변수 이름이고 뒤쪽 !@은 "다르나" 연산자가 됩니다.

어떻게 해결할까?

junlang
!!@오오

위 코드는 변수 1번 != 2로 해석된다는 점을 봤습니다. 그런데 만약 변수 2번이 2와 같은지 비교하고 싶다면 어떻게 해야 할까요?

!!@오오를 그대로 쓰면 변수 1번 != 2가 되므로, 이 의도는 표현할 수 없습니다. 이때 , 로 변수를 감싸서 의도를 명확히 합니다.

junlang
준!!서@오오

이 코드는 다음과 같이 해석됩니다.

text
변수2 == 2

TIP

, 는 일반적인 식의 우선순위를 바꾸는 데에도 쓰입니다. 자세한 내용은 준,서를 참고하세요.

정리

코드해석
!@오오변수 1번 == 2
!!@오오변수 1번 != 2
!!!@오오변수 2번 != 2
준!서@오오변수 1번 == 2 (준,서로 명시)
준!!서@오오변수 2번 == 2 (준,서로 명시)
준!!서!@오오변수 2번 != 2 (준,서로 명시)

헷갈릴 땐 , 를 쓰세요

어떤 의미인지 한눈에 안 보이면 , 로 변수의 범위를 감싸세요. 코드가 길어져도 의도가 명확해집니다.