-
Swift - String - String의 종류, Multi-line String LiteralProgramming/Swift 2020. 10. 14. 23:26
오늘은 String에 대해서 자세히 공부해 보도록 하겠습니다 :)
Swift에서는 String의 종류를 두 가지로 나눌 수 있습니다.
- Swift String
- Foundation String
우리가 지금까지 사용했던 String은 Swift String입니다.
지난 Type Casting 포스팅에서 한번 언급한 적이 있는 NSString을 기억하시나요?
NSString이 바로 Foundation String입니다.
그럼 간단하게 두 String의 차이점을 알아보겠습니다.
Swift String
String이 바로 Swift String입니다.
String은 Structure(구조체)입니다.
Structure이기 때문에 Value Type(값 형식)입니다.
String을 Mutability(가변) String으로 선언하고 싶으면 var을 사용해서 String을 선언해 줍니다.
Foundation String
Foundation String은 NSString입니다.
NSString은 Class(클래스)입니다.
그러므로 Reference Type(참조 형식)입니다.
Mutability NSString으로 선언하고 싶으면 Type을 NSMutableString으로 선언해야 합니다.
여기서 구조체가 뭐야? 클래스가 뭐야?? 값 형식이랑 참조 형식은 또 뭐야??라는 생각이 드실 수도 있어요!
지금은 모르셔도 괜찮습니다. 이런 차이가 있구나 라고만 기억해주시고 넘어가 주시면 충분합니다.
이 주제에 대해서는 Sturucture와 Class 포스팅에서 다루겠습니다.
Multi-line String Literal
지금까지 String Literal을 작성할 때 ""(double quotes)에 넣어서 작성했습니다.
이건 SingleLine입니다.
만약 ""을 이용해 여려 줄의 문자열을 출력하고 싶으면
이렇게 작성을 해야 했죠??
하지만 Multi-line을 이용하면 간단하게 가능합니다.
Multi-line String Literal은 String Literal을 """ """으로 감싸줍니다.
Multi-line을 사용할 때는 주의할 점이 있습니다.
- 코드의 들여 쓰기는 마지막 """을 기준으로 정해집니다.
- """과 다른 줄에서 문자열을 입력해야 합니다.
먼저 위 코드를 보시면 """과 문자열들이 같은 들여 쓰기에 작성돼있죠? 이렇게 되면 들여 쓰기 없이 문자열이 출력됩니다.
하지만 문자열을 들여 쓰게 되면
이렇게 문자열이 들여 쓰기 됐습니다.
이제 마지막 """을 들여 써보겠습니다.
코드상에서는 문자열이 들여 쓰기로 작성됐는데 로그를 보면 들여 쓰기가 안된 것을 확인할 수 있습니다.
이렇게 들여 쓰기는 """의 위치를 기준으로 적용됩니다.
그렇기 때문에 문자열이 마지막 """보다 앞에 있다면 에러가 발생하게 됩니다.
그리고 만약 Multi-line에서 줄 바꿈을 하고 싶지 않다면 \ (back slash)를 적어주면 됩니다.
마지막으로 """과 같은 줄에서 문자열을 작성해 보겠습니다.
print("""Good afternoon, // Error!! good evening, good night. """)
이렇게 """과 같은 줄에서 작성하게 되면 에러가 발생합니다.
참고자료
https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html
728x90'Programming > Swift' 카테고리의 다른 글
Swift - String Format Specifier (0) 2020.10.16 Swift - String - Escape sequence, String Interpolation (0) 2020.10.15 Swift - Tuple Decomposition, Matching (0) 2020.10.13 Swift - Tuple (0) 2020.10.12 Swift - Closure (1) 2020.10.11