문자열 리터럴

나루 위키
둘러보기로 가기 검색하러 가기

문자열 리터럴문자열 타입의 값을 반환하는 원자적 표현식이다.

문자열에 들어갈 0개 이상의 유니코드 스칼라 값'"로 묶을 수 있다. 어느 쪽을 쓰든 상관 없지만, 양쪽에 같은 따옴표가 붙어 있어야 한다. 서로 다른 따옴표는 문자열의 일부로 취급된다.

"" -- 빈 문자열
"Hello, world!"
'안녕?'
"이것은 '무엇'인교?"
'이것은 "무엇"이다!'

문자열 리터럴에는 세로 공백 문자\ 및 리터럴에 사용된 따옴표가 그대로 나타날 수 없으며, 이러한 문자를 쓰려면 \로 시작하는 탈출열을 대신 사용한다. 해당 문자를 제외하면 널 문자를 제외한 어떤 문자라도 문자열에 그대로 넣을 수 있다. 모든 문자열은 보통 문자와 탈출열의 조합으로 나타낼 수 있다.

"💩: 안녕? 내 이름은 \"문자\\열\"이야.\r\n"
'\x{1f4a9}: 안녕? \x{b0b4} 이름은 "문자\\열"이야.\x{a}\x{d}' -- 위와 동일

탈출열이 나타내는 코드 포인트는 여전히 올바른 유니코드 스칼라 값이어야 한다.

"\x{-1}"     -- 오류: 코드 포인트가 음수
"\x{0.0}"    -- 오류: 코드 포인트가 소수
"\x{def0}"   -- 오류: U+DEF0은 서로게이트로서 올바른 유니코드 스칼라 값이 아님
"\x{110000}" -- 오류: 코드 포인트가 너무 큼

여러 줄 문자열 리터럴

여는 따옴표가 세 개 이상일 경우, 이 리터럴은 여러 줄 문자열 리터럴이 된다. 이 종류의 리터럴에는 세로 공백 문자가 탈출열 없이 들어갈 수 있으며, 처음으로 대응되는 닫는 따옴표가 세 개 연속으로 나올 때 끝나게 된다.

"""asdf
   asdf
    asdf"""
-- "asdf\n   asdf\n    asdf"와 동일

''''a' ''''
-- "'a" "와 동일. 마지막 '는 찌꺼기로 남아 오류를 발생시킨다.

문자열 리터럴의 앞이나 뒤에는 리터럴 접사가 붙을 수 있다.