타입 체크는 런타임 시에 발생합니다.
타입 확인은 'is' 키워드를 사용하여 수행합니다.
let someValue: Any = 42
if someValue is Int {
print("someValue는 Int 타입입니다.")
} else {
print("someValue는 Int 타입이 아닙니다.")
}
Swift에서는 형식 추론(Type Inference) 기능을 제공하여 변수나 상수의 형식을 명시적으로 선언하지 않아도 자동으로 추론할 수 있습니다.
let a = 12
type(of: a) // Int.Type
컴파일러가 정수를 가장 빠르게 처리하기 때문에 Int 형식으로 추론한 결과입니다.
Type Annotation은 변수나 상수의 이름 뒤에 콜론(:)을 붙인 후 형식을 명시합니다. 예를 들어, 정수형 변수를 선언하고 싶다면 다음과 같이 작성할 수 있습니다:
var myNumber: Int = 10
타입을 명시적으로 선언해 주고 있습니다.
이는 코드를 간결하게 작성할 수 있게 도와줍니다.
명시적으로 선언하는 것이 코드의 가독성을 높이고 의도를 명확히 전달하는 데 도움이 될 수 있습니다.
class ParentClass {}
class ChildClass: ParentClass {}
let parentObject = ParentClass()
let childObject = ChildClass()
let parentObjectAsChild = parentObject as? ChildClass
let childObjectAsParent = childObject as? ParentClass
let integerNumber = 42
let doubleNumber = Double(integerNumber)
let stringNumber = String(integerNumber)
let a = 123
let b = Int8(a)
Int.max
//성공
let a = 123.45
let b = Int8(a)
Int.max
//타입 변환은 소수점을 날리고 정수 부분만을 취하는 과정입니다.
//성공
let a = Int.max
let b = Int8(a)
//Fatal error, 값을 저장할 공간이 부족하다면 Type Conversion 실패하고 크래시가 발생합니다.
let str = "123"
let num = Int(str)
let str = "number"
let num = Int(str)
//nil
//Type Conversion 실패했지만 에러가 발생하지 않고 nil 값을 반환합니다.