josee2
josee2 Devlog
josee2
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • Swift (33)
      • 문법 (33)
    • iOS (13)
    • Algorithm (3)
      • 프로그래머스 (1)
      • BOJ (0)
      • 기타 (2)
    • 일상 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 동기
  • 직렬
  • serial
  • 스위프트
  • IOS
  • SeSAC
  • 문자열 템플릿
  • Swift
  • GCD
  • 프로세스
  • Sync
  • concurrent
  • 동시큐
  • 동시
  • 쓰레드
  • 서울청년취업사관학교
  • 멀티쓰레드
  • 동시성프로그래밍
  • Async
  • 비동기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
josee2

josee2 Devlog

Swift/문법

스위프트(Swift) - Raw String

2022. 7. 13. 01:03

 

스위프트에서 큰 따옴표(")나 백 슬래시( \ )를 표현하기 위해선 반드시 앞에 백슬래시를 붙여 주어야한다. 다른 언어는 그런지 모르겠지만 기억상 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

 

What’s new in Swift 5.0

Raw strings, future enum cases, compactMapValues(), and more!

www.hackingwithswift.com

https://github.com/apple/swift-evolution/blob/main/proposals/0200-raw-string-escaping.md

 

GitHub - apple/swift-evolution: This maintains proposals for changes and user-visible enhancements to the Swift Programming Lang

This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - GitHub - apple/swift-evolution: This maintains proposals for changes and user-visible enhance...

github.com

 

저작자표시 비영리 변경금지 (새창열림)

'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
    'Swift/문법' 카테고리의 다른 글
    • 스위프트(Swift) - 구조체와 클래스 Ⅱ. 프로퍼티 - 연산 프로퍼티
    • 스위프트(Swift) - 구조체와 클래스 Ⅱ. 프로퍼티 - 저장프로퍼티
    • 스위프트(Swift) - 구조체와 클래스 Ⅰ. 기본 개념
    • 스위프트(Swift) - 함수(Fuction) Ⅹ. @escaping, @autoescape
    josee2
    josee2
    iOS 개발자 지망생의 공부기록입니다.

    티스토리툴바