본문 바로가기

교육/Swift

[swift] casting

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)

'교육 > Swift' 카테고리의 다른 글

[swift] operator overloading  (0) 2016.08.08
[swift] protocol  (0) 2016.08.08
[swift] extension  (0) 2016.08.08
[swift] subscript  (0) 2016.08.08
[swift] method  (0) 2016.08.08