스위프트 리터럴

100 Days of SwiftUI 챌린지의 1일차를 진행하는 동안 다음 코드를 발견했습니다.

var percentage: Double = 99




나는 이것이 작동한다는 것을 이해합니다. 경고가 없고 Swift는 문제 없이 99를 99.0으로 캐스팅하는 것 같습니다... 하지만 작동하는 이유를 설명할 수 없었습니다.

이를 해결하기 위해 신속한 리터럴에 대해 배웠습니다.

스위프트 리터럴이란 무엇입니까?



Swift 리터럴은 소스 코드의 값을 나타냅니다. Int 또는 String과 같은 유형을 정의하지 않고 오히려 32 또는 "Hello!"와 같은 값을 정의합니다.

Swift 리터럴은 어떻게 작동합니까?



Swift가 리터럴을 만나면 타입이 해당 리터럴을 초기화할 수 있는지 자동으로 확인하여 타입을 추론하려고 합니다.

🤔 어떻게?



일부 유형은 문자 그대로 표현할 수 있는 프로토콜을 따릅니다. 이는 Swift가 리터럴을 초기화하는 데 필요한 구현이 있는 유형을 확인할 수 있도록 합니다.

유형 주석 또는 캐스팅을 사용하는 것을 의미하는 컨텍스트가 주어지면 Swift는 정의된 유형이 리터럴의 표현 가능한 프로토콜을 준수하는지 확인합니다.

문맥이 주어지지 않으면 의미

let meaningOfLife = 42 


그런 다음 Swift는 표준 유형(Int, Double, String 등)이 이 리터럴을 초기화할 수 있는지 자동으로 확인합니다.

다시 찾고




var percentage: Double = 99


완전히 작동합니다.

Swift가 99 리터럴을 만나면 유형을 Double로 유추하려고 시도합니다. Double 유형은 ExpressibleByIntegerLiteral 를 준수하므로 99를 Double 🤯로 초기화할 수 있습니다.

그래서 이

var wholeNumber: Int = 99.0


Int 유형이 부동 소수점 리터럴 표현 가능한 프로토콜을 준수하지 않기 때문에 작동하지 않습니다.



다음은



목록의 다음은 나만의 사용자 지정 유형을 작업하고 리터럴 초기화를 처리하는 것입니다.

좋은 웹페이지 즐겨찾기