스위프트에서 큰 따옴표(")나 백 슬래시( \ )를 표현하기 위해선 반드시 앞에 백슬래시를 붙여 주어야한다. 다른 언어는 그런지 모르겠지만 기억상 C언어와 리눅스 또한 그러했다.
그렇다면 도대체 왜 백슬래시(\)를 붙여줘야 하는 걸까?
그 이유는 바로 큰 따옴표(")와 백슬래시( \ )가 문자열의 시작과 끝을 나타내주는 경계 문자(String delimeters)와 이스케이프 문자(Escape characters)로 사용되기 때문이다.
우리가 자주 사용해서 알겠지만 이 두 기호는 자주 쓰이며 어떠한 역할을 한다는 특징을 가지고 있다.
큰 따옴표(")는 문자열의 범위의 경계를 파악하기 위한 기호로 사용되고 백슬래시( \ )는 이스케이프 문자로 문자열 안에서 기능을 처리하기 위해 사용된다
// ""와 \가 각자의 기능을 하고 있는 것을 볼 수 있다.
var name = "Josee"
print("내 이름은 \(name)이야")
우리가 처리해야될 문자가 복잡하지 않은 경우는 크게 불편함이 없다. 하지만 정규 표현식 같은 경우엔 연속으로 백슬래시( \ )가 두 개 이상씩 들어간 경우가 많아 불편함이 생기게된다.
이를 해결하기위해 스위프트는 5.0 부터 Raw String이라는 문법을 지원하게 된다.
Raw String
Raw String 문법은 간단하다. 백슬래시를 빼고 그대로 #"문자"#으로 표현해주면 된다. 그러면 위에서 본 그림과 같이 똑같은 결과값을 나타내게 된다.
한 가지 주의할 점이 있는데 바로 문자열 템플릿을 사용하는 경우이다. 이 경우엔 \#(문자)로 사용해주면 된다.
참고
https://www.hackingwithswift.com/articles/126/whats-new-in-swift-5-0
https://github.com/apple/swift-evolution/blob/main/proposals/0200-raw-string-escaping.md
'Swift > 문법' 카테고리의 다른 글
스위프트(Swift) - 구조체와 클래스 Ⅱ. 프로퍼티 - 연산 프로퍼티 (0) | 2022.06.02 |
---|---|
스위프트(Swift) - 구조체와 클래스 Ⅱ. 프로퍼티 - 저장프로퍼티 (0) | 2022.06.01 |
스위프트(Swift) - 구조체와 클래스 Ⅰ. 기본 개념 (0) | 2022.05.31 |
스위프트(Swift) - 함수(Fuction) Ⅹ. @escaping, @autoescape (0) | 2022.05.26 |
스위프트(Swift) - 함수(Function) Ⅸ. 트레일링 클로저(Trailing Closure) (0) | 2022.05.25 |