티스토리 뷰

반응형

 

 


String Literal
문자열 리터럴

오늘은 스위프트의 String 문자열에 리터럴 사용방법에 대해서 얘기해보겠습니다. 여기서 리터럴(Literal)이란 무엇일까요? 그래서 구글에 쳐봤습니다.

 

 

 


리터럴은 컴퓨터 과학 분야에서 소스 코드의 고정된 값을 대표하는 용어라고 합니다. 이를테면 문자열 리터럴(String Literal)은 "HelloSwift", "ABCDE" 등이 있습니다. 정수형 리터럴은 123, 41234, 52394, 2147483647 등이 있습니다. 

다시 본론으로 가서, 문자열 리터럴에 대해서 알아보겠습니다. 👨🏻‍💻

 

 

 


스위프트에서 문자열 리터럴 값은 미리 정의되어 있는 타입, String 변수, 상수에 String 리터럴을 할당해서 사용할 수 있습니다. 문자열 리터럴(String Literal)은 문자(Characters)의 연속이라고 할 수 있습니다. 이때 문자열 리터럴(String Literal)은 좌우 양 끝에 " 따옴표를 감싸서 표현합니다. 사실 다른 언어에서도 이렇게 문자열 리터럴을 정의하고 있으니 쉽죠 😂

실제로 스위프트의 문자열은 Character 타입의 문자를로 구성된 컬렉션입니다. 더 자세히 가자면, 양방향 컬렉션(Bidirectional Collection)으로 되어있지요.

 

 


How to Use String Literals 
문자열 리터럴 사용방법

이제 바로 스위프트에서 문자열 리터럴을 사용해 보겠습니다. 아래 코드는 "Hello Swift ~!!" 라는 문자열을 상수인 someString에 할당하고 있습니다. 해당 값은 상수타입으로 불변합니다. 

 

 


위의 코드에서 주목할 사항을 보겠습니다. 위의 상수, someString은 별도의 타입을 명시하고 있지 않지만, String타입으로 인식합니다. 그 이유는 우측에 할당된 문자열 리터럴을 할당하는것만으로 해당 상수가 String타입임을 추론할 수 있기 때문이죠.

위의 코드는 한줄로 되어있는 문자열 리터럴을 사용하고 있는데요. 만약 두줄 이상의 리터럴을 정의하려면 어떻게 해야할까요? (\n등의 문구를 사용하지 않고 말이죠) 🤔

 

 


Multiline String Literals

2줄 이상의 문자열 리터럴 정의하기

만약 두줄 이상의 문자열 리터럴을 정의하고 싶다면, 단순히 다수의 줄은 가진 문자열 리터럴(String Literal)임을 명시하기 위해 해당 문자열 리터럴의 위/아래로 """ 를 사용하면 됩니다.

 

 

 

 


위의 코드는 tripleLineStringLiterals 상수에 3줄의 문자열 리터럴을 할당하는 모습입니다. 이후 tripleLineStringLiterals 상수를 출력하고 있습니다.

위와 같이 다수의 줄을 가진 문자열 리터럴은 위아래로 """ 로 감싸며 표현되고 있습니다. 해당 문자열 리터럴의 시작줄, 끝줄을 감싸면서 말이죠.

과연 세줄의 문자열 리터럴로 잘 출력될까요?? 아래를 보시면 그 결과를 아실 수 있습니다. 

 

 

 

 


위와 같이 3줄의 문자열 리터럴이 정상적으로 표출되는것을 보실 수 있습니다. 
""" 로 감싸는 표현은 2줄 이상의 문자열 리터럴에서만 사용할 수 있는게 아닙니다. 한줄의 문자열 리터럴도 해당 방법으로 표현할 수 있습니다. 

 

 

 


그렇기때문에 위와 같은 코드의 경우 singleLineString, multilineString 상수는 서로 같은 값의 문자열 리터럴을 갖습니다. 

만약 소스코드가 다수의 문자열 리터럴 내에 개행이 필요하다면, 실제 할당 된 String 타입의 값에도 해당 개행이 포함됩니다. 
만약 위와 같이 """ 를 위아래로 감싸며, 2줄 이상의 문자열리터럴을 표현하는데, 부분적으로 개행을 원하지 않는 다면 해당 열의 끝에 '\'(역 슬래시)를 불여주면 해당 부분의 개행을 막을 수 있습니다. 그 방법은 아래 코드를 보시면 됩니다. 

 

 

 

 


위의 코드를 보시면, "Hello I'm MungGu" 문자열 뒤에 '\'를 붙였습니다. 
그 결과를 보면 해당 열과 그 아래 열이 개행되지 않고 한줄로 표출하는 것을 볼 수 있습니다. 

 

 


문자열 리터럴 들여쓰기 기준잡기

 

 


""" 를 사용할 때 참고할 사항은 하단의 """ 시작 부분이 해당 문자열 리터럴의 들여쓰기 기준점이 된다는 것입니다.
"""로 감싸진 문자열 리터럴은 해당 들여쓰기 기준점을 준수하지 않으면 컴파일 에러를 보실 수 있습니다. 위의 경우, """ 가 4칸의 공백을 가진 뒤 정의되었으므로, 첫 4칸의 공백은 무시되며, 그 이후의 들여쓰기만 실제 문자열 리터럴에 적용됩니다. 그 사용 예시는 아래와 같습니다.

 

 

 

 


위의 코드는 정의된 문자열 리터럴 끝 줄의 """가 4칸 공백을 가졌으므로, 문자열 리터럴 각 줄의 첫 공백 4칸은 무시됩니다.
즉, 만약 각 문자열 리터럴이 8칸의 공백을 가진다면, 실제로 문자열 리터럴에는 4칸의 공백만 적용되며, 위와 같은 결과를 갖게 됩니다. 👍🏼

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함