[Swift] CustomStringConvertible

CustomStringConvertible란?

프로토콜의 한 종류로, 인스턴스를 문자열로 커스텀할 때 사용을 한다. 특히 로그를 찍어볼 때 아주 유용하다.

사용법

struct Person {
    let name: String
    let age: Int
}

let god = Person(name: "messi", age: 99)
print(god)

// 결과
// Person(name: "messi", age: 99)


extension Person: CustomStringConvertible {
    var description: String {
        return "이름은 \(name), 나이는 \(age)살 입니다"
    }
}
// 결과
// 이름은 messi, 나이는 99살 입니다

CustomStringConvertible 프로토콜을 채택하게 되면 description이라는 변수를 정의 해줘야한다. 여기에 정의한 문자열이 인스턴스를 표현할 때 나오게된다.

애플 공식문서에 보면 설명이 잘 나와있고 어렵지 않은 개념이라 쉽게 이해가 가능했다.