복붙노트

[SWIFT] 스위프트의 문자열 보간 및 문자열 초기화의 차이

SWIFT

스위프트의 문자열 보간 및 문자열 초기화의 차이

해결법


  1. 1.문자열 보간 "\ (항목)"당신에게 항목에 대한 설명을 호출 한 결과를 제공합니다. 문자열 (항목) 초기화 문자열을 호출하고 자주 문자열 보간에서 얻을 것이다 문자열과 동일한 문자열 값을 반환하지만은 보장되지 않습니다.

    문자열 보간 "\ (항목)"당신에게 항목에 대한 설명을 호출 한 결과를 제공합니다. 문자열 (항목) 초기화 문자열을 호출하고 자주 문자열 보간에서 얻을 것이다 문자열과 동일한 문자열 값을 반환하지만은 보장되지 않습니다.

    다음과 같은 인위적인 예제를 생각해 봅시다 :

    class MyClass: CustomStringConvertible {
        var str: String
    
        var description: String { return "MyClass - \(str)" }
    
        init(str: String) {
            self.str = str
        }
    }
    
    extension String {
        init(_ myclass: MyClass) {
            self = myclass.str
        }
    }
    
    let mc = MyClass(str: "Hello")
    String(mc)  // "Hello"
    "\(mc)"     // "MyClass - Hello"
    
  2. from https://stackoverflow.com/questions/38675957/difference-between-string-interpolation-and-string-initializer-in-swift by cc-by-sa and MIT license