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
}
网友评论