간혹 문자열을 여러 줄로 나누어 작성해야할 때가 있다. 하지만 스위프트에서는 문자열 쿼우팅(" ") 내부에서 줄바꿈하는 것을 허용해주지 않기에 다음과 같이 작성시 오류가 발생하게 된다.
let essay = "나는 지금 여기에서
뭘 하고 있는걸까?
무엇을 하는지 잘 모르겠다.
하지만 재미하나는 있는 거 같다"
// (X) 컴파일 오류발생
이렇게 긴 문자열을 여러 줄에 작성하기 위해선 '+'연산자를 반드시 이용해야 한다.
let essay = "나는 지금 여기에서 "
+ "뭘 하고 있는걸까? "
+ "무엇을 하는지 잘 모르겠다."
+ "하지만 재미하나는 있는 거 같다"
하지만 이렇게 작성하게 될 경우 다음과 같이 한 줄로 쭉 이어져서 작성이 된다.
/* 실행결과
나는 지금 여기에서 뭘 하고 있는걸까? 무엇을 하는지 잘 모르겠다. 하지만 재미하나는 있는 거 같다
*/
실제로 문자열 내부에서는 줄바꿈 처리가 되어있지 않기 때문에 한 줄로 쭉 이어져 작성되는 것이다. 이를 해결하기 위해선 '\n'을 줄바꿈할 위치에 직접 넣어주면된다. 이것은 줄바꿈을 의미하는 특수문자로, 리턴피드(Return Feed)라고 한다.
let essay = "나는 지금 여기에서 \n"
+ "뭘 하고 있는걸까? \n"
+ "무엇을 하는지 잘 모르겠다. \n"
+ "하지만 재미하나는 있는 거 같다"
이 것을 출력하면 다음과 같이 줄바꿈이 처리되어 문자열이 출력된다.
/* 실행결과
나는 지금 여기에서
뭘 하고 있는걸까?
무엇을 하는지 잘 모르겠다.
하지만 재미하나는 있는 거 같다
*/
멀티 라인 스트링(Multi-line String)
멀티 라인 스트링은 큰따옴표 세 개를 연속으로 붙여서 쿼우팅 영역의 시작과 끝을 정의하고 (""" ~ """) 그 내부에서 자유롭게 작성된 문자열을 그대로 실제내용으로 처리하는 방식이다. 큰따옴표 세 개를 이용해 쿼우팅한다는 특징 때문에 트리플 쿼우팅(Triple Quoting)이라고 불리기도 한다.
멀티 라인 스트링으로 작성된 문자열은 띄어쓰기나 줄바꿈 등이 작성된 그대로 반영되기 때문에, 문자열에 형식을 부여하기 위해 복잡한 코드를 처리할 필요가 없다.
멀티 라인 스트링을 사용할 때 주의할 점은 다음과 같다.
- 시작 쿼우팅 다음에는 반드시 줄바꿈 후 값을 작성해야한다. 쿼우팅이 시작된 라인에서는 쿼우팅 이후 아무것도 들어가선 안 된다.
- 멀티라인 스트링의 입력을 끝낼 때에는 반드시 줄바꿈 후 쿼우팅 처리해야 한다. 쿼우팅을 종료하는 라인에서는 쿼우팅 아에 어떤 값도 들어갈 수 없다.
- 쿼우팅 내부에 특수문자 (\n, \t 등)이 들어가면 문자 그대로 출력된다.
let essay = """
나는 지금 여기에서
뭘 하고 있는걸까?
무엇을 하는지 잘 모르겠다.
하지만 재미하나는 있는 거 같다
""" // ( O )
/* 실행결과
나는 지금 여기에서
뭘 하고 있는걸까?
무엇을 하는지 잘 모르겠다.
하지만 재미하나는 있는 거 같다
*/
let essay = """나는 지금 여기에서 뭘 하고 ~ 재미하나는 있는 거 같다. // ( X )
let essay = """나는 지금 여기에서
뭘 하고 있는걸까?
무엇을 하는지 잘 모르겠다.
하지만 재미하나는 있는 거 같다""" // ( X )
출처 : 꼼꼼한 재은씨의 스위프트 문법편
'Swift > 문법' 카테고리의 다른 글
스위프트(Swift) - 반복문Ⅰ. for ~ in구문 (0) | 2022.04.27 |
---|---|
스위프트(Swift) - 연산자 (0) | 2022.04.26 |
스위프트(Swift) - 타입이 다른 변수끼리의 결합, 문자열 템플릿 (0) | 2022.04.23 |
스위프트(Swift) - 타입 추론과 타입 어노테이션 (0) | 2022.04.21 |
스위프트(Swift) - 기본 자료형 (0) | 2022.04.20 |