교육/Swift
[swift] casting
삶의안식처
2016. 8. 8. 15:19
1. 샘플코드
// casting
class Animal{}
class Dog:Animal{}
class Cat:Animal
{
func cry() { print("cat cry")}
}
var p : Animal = Cat()
// p가 누구인지 조사하기
print(p is Dog)
print(p is Cat)
print(p is Animal)// 항상 true라고 warning
//p.cry() // Animal에 없기 때문에 런타임에러
//var p2 = p as! Cat // 강제 형변환
//var p2 = p as! Dog // 뒤짐, optional로 받자
// as! : 잘못된 타입으로 캐스팅 하면 runtime error
var p2 = p as? Dog // optional<Dog>
// as? : optional 타입으로 캐스팅
showType(p2)
print(p2)