🔥 문자열 리터럴
문자열 리터럴은 Swift에서 미리 정의된 String 값을 코드에 포함하는 방법이에요. 문자열 리터럴은 큰따옴표(")로 둘러싸인 문자열의 시퀀스랍니다. 다음 예제처럼 상수나 변수를 초기화할 때 문자열 리터럴을 사용할 수 있어요.
let someString = "Some string literal value"
// someString 상수는 문자열 리터럴로 초기화되었기 때문에 Swift는 String 타입으로 추론해요.let someString = "Some string literal value"
// someString 상수는 문자열 리터럴로 초기화되었기 때문에 Swift는 String 타입으로 추론해요.여러 줄 문자열 리터럴
여러 줄에 걸쳐 있는 문자열이 필요하다면 여러 줄 문자열 리터럴을 사용하세요. 여러 줄 문자열 리터럴은 세 개의 큰따옴표로 둘러싸인 문자열의 시퀀스예요. 아래 예제를 보면 이해가 될 거예요.
let quotation = """
The White Rabbit put on his spectacles. "Where shall I begin,
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on
till you come to the end; then stop."
"""let quotation = """
The White Rabbit put on his spectacles. "Where shall I begin,
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on
till you come to the end; then stop."
"""여러 줄 문자열 리터럴은 여는 따옴표와 닫는 따옴표 사이의 모든 줄을 포함해요. 문자열은 여는 따옴표(""") 다음 줄부터 시작되고 닫는 따옴표 앞 줄에서 끝나요. 이는 아래 두 문자열이 줄 바꿈으로 시작하거나 끝나지 않는다는 것을 의미해요.
let singleLineString = "These are the same."
let multilineString = """
These are the same.
"""let singleLineString = "These are the same."
let multilineString = """
These are the same.
"""여러 줄 문자열 리터럴 안에서 줄 바꿈이 있으면 그 줄 바꿈은 문자열의 값에도 나타나요. 소스 코드를 읽기 쉽게 하기 위해 줄 바꿈을 사용하고 싶지만 줄 바꿈이 문자열의 값에 포함되길 원하지 않는다면, 그 줄의 끝에 백슬래시(\\)를 작성하세요.
let softWrappedQuotation = """
The White Rabbit put on his spectacles. "Where shall I begin, \\
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on \\
till you come to the end; then stop."
"""let softWrappedQuotation = """
The White Rabbit put on his spectacles. "Where shall I begin, \\
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on \\
till you come to the end; then stop."
"""줄 바꿈으로 시작하거나 끝나는 여러 줄 문자열 리터럴을 만들려면 첫 줄이나 마지막 줄에 빈 줄을 작성하세요. 예를 들면 이렇게요.
let lineBreaks = """
This string starts with a line break.
It also ends with a line break.
"""let lineBreaks = """
This string starts with a line break.
It also ends with a line break.
"""여러 줄 문자열은 주변 코드와 맞춰서 들여쓰기 할 수 있어요. 닫는 따옴표(""") 앞의 공백은 Swift에게 다른 모든 줄 앞에서 무시할 공백이 무엇인지 알려줘요. 하지만 닫는 따옴표 앞의 공백 외에 줄의 시작 부분에 공백을 작성하면 그 공백은 포함돼요.

위 예제에서 전체 여러 줄 문자열 리터럴이 들여쓰기 되어 있음에도 불구하고 문자열의 첫 줄과 마지막 줄은 공백으로 시작하지 않아요. 가운데 줄은 닫는 따옴표보다 더 많이 들여쓰기 되어 있어서 4칸의 추가 들여쓰기로 시작하고 있죠.
문자열 리터럴의 특수 문자
문자열 리터럴에는 다음과 같은 특수 문자가 포함될 수 있어요.
- 이스케이프된 특수 문자:
\\0(널 문자),\\\\(백슬래시),\\t(가로 탭),\n(줄 바꿈),\\r(캐리지 리턴),\\"(큰따옴표),\\'(작은따옴표) - 임의의 유니코드 스칼라 값:
\\u{n}형식으로 작성하며, 여기서n은 1-8자리 16진수예요. (유니코드는 아래에서 다룰 거예요.)
아래 코드는 이러한 특수 문자의 네 가지 예제를 보여줘요. wiseWords 상수는 두 개의 이스케이프된 큰따옴표를 포함하고 있어요. dollarSign, blackHeart, sparklingHeart 상수는 유니코드 스칼라 형식을 보여주고 있죠.
let wiseWords = "\\"Imagination is more important than knowledge\\" - Einstein"
// "Imagination is more important than knowledge" - Einstein
let dollarSign = "\\u{24}" // $, Unicode scalar U+0024
let blackHeart = "\\u{2665}" // ♥, Unicode scalar U+2665
let sparklingHeart = "\\u{1F496}" // 💖, Unicode scalar U+1F496
let wiseWords = "\\"Imagination is more important than knowledge\\" - Einstein"
// "Imagination is more important than knowledge" - Einstein
let dollarSign = "\\u{24}" // $, Unicode scalar U+0024
let blackHeart = "\\u{2665}" // ♥, Unicode scalar U+2665
let sparklingHeart = "\\u{1F496}" // 💖, Unicode scalar U+1F496
여러 줄 문자열 리터럴은 하나 대신 세 개의 큰따옴표를 사용하기 때문에 이스케이프 하지 않고도 여러 줄 문자열 리터럴 안에 큰따옴표(")를 포함할 수 있어요. 여러 줄 문자열에 """을 포함하려면 따옴표 중 하나 이상을 이스케이프 하세요. 예를 들면 이렇게요.
let threeDoubleQuotationMarks = """
Escaping the first quotation mark \\"""
Escaping all three quotation marks \\"\\"\\"
"""let threeDoubleQuotationMarks = """
Escaping the first quotation mark \\"""
Escaping all three quotation marks \\"\\"\\"
"""확장된 문자열 구분자
확장된 구분자 안에 문자열 리터럴을 넣으면 특수 문자의 효과를 발동시키지 않고도 문자열에 특수 문자를 포함할 수 있어요. 문자열을 따옴표(")로 둘러싸고 그 주위를 숫자 기호(#)로 둘러싸면 돼요. 예를 들어 #"Line 1\nLine 2"#을 출력하면 문자열을 두 줄에 걸쳐 출력하는 대신 줄 바꿈 이스케이프 시퀀스(\n)를 그대로 출력해요.
문자열 리터럴에서 문자의 특수 효과가 필요하다면 이스케이프 문자(\\) 다음에 문자열 내의 숫자 기호 수를 맞추세요. 예를 들어 문자열이 #"Line 1\nLine 2"#이고 줄을 바꾸고 싶다면 대신 #"Line 1\\#nLine 2"#을 사용할 수 있어요. 마찬가지로 ###"Line1\\###nLine2"###도 줄을 바꿔요.
확장된 구분자를 사용하여 생성된 문자열 리터럴은 여러 줄 문자열 리터럴이 될 수도 있어요. 확장된 구분자를 사용하여 여러 줄 문자열에 """을 포함할 수 있고, 이는 리터럴을 종료하는 기본 동작을 오버라이드하죠. 예를 들면 이렇게요.
let threeMoreDoubleQuotationMarks = #"""
Here are three more double quotes: """
"""#let threeMoreDoubleQuotationMarks = #"""
Here are three more double quotes: """
"""#이렇게 문자열 리터럴에 대해 알아보았어요. 문자열 리터럴을 사용하면 코드에 미리 정의된 문자열 값을 쉽게 포함할 수 있답니다. 여러 줄 문자열 리터럴과 확장된 구분자를 활용하면 더 다양한 형태의 문자열을 표현할 수 있겠죠? 이제 여러분도 Swift에서 문자열을 자유자재로 다룰 수 있게 되었길 바랍니다.











