Swift - 类型判断is 与 类型转换as

2020-07-09  本文已影响0人  小驴拉磨

在Swift中,通常使用is和as操作符来实现类型检查和转换。下面通过样例来演示使用方法,首先定义几个类。

//基类,动物
class Animal{
}
 
//狗
class Dog:Animal{
}
 
//猪
class Pig:Animal{
}

1、is 用来做类型检查
(注意:is也可以用来检查某个类是否遵循了某个协议)

let dog = Dog()
let pig = Pig()
let arr = [dog,pig]
 
for animal in arr {
    if animal is Dog {
        print("这是只狗")
    }else if animal is Dog {
        print("这是只猪")
    }
}

2、as 用来做类型转换
(注意:如果不确定类型转换能否成功,可以在as后面加问号“?”)

let dog = Dog()
let pig = Pig()
let arr = [dog,pig]
 
for animal in arr {
    if let d = animal as? Dog {
        print("这是只狗")
    }else if let p = animal as? Pig {
        print("这是只猪")
    }
}

原文出自:www.hangge.com

上一篇 下一篇

猜你喜欢

热点阅读