swift 中简洁的is语法

2020-03-22  本文已影响0人  90后的晨仔

swift为我们提供了一个简洁的is语法,这个语法可以用来对于不确定的类型进行判断

1.is 的作用

is 在功能上相当于原来oc中的 isKindOfClass ,可以检查一个对象是否属于某类型或其子类型。

2. is 与 oc中的 isKindOfClass的区别

它不仅可以用于 class 类型上,也可以对 Swift 的其他像是 struct 或 enum 类型进行判断。

class testClassA {}
class testClassB: testClassA {}
let obj: AnyObject = testClassB()
if (obj is testClassA){
    print("属于 testClassA")
}

if (obj is testClassB){
    print("属于 testClassB")
}
3. 若编译器能推断出来类型那么这个是没有必要使用的,一般自定义的类、结构体、枚举等编译器确定不了类型才去使用is

注释:如果编译器知道类型,那么 is 的判断 就没有必要,编译器将会抛出一个警告,来提示你并没有转换的必要。

 let string = "String"
 if string is String {
    // Do something
}
上一篇下一篇

猜你喜欢

热点阅读