美文网首页swift
swift中的is、as?、as!、as

swift中的is、as?、as!、as

作者: 梁森的简书 | 来源:发表于2021-04-01 20:09 被阅读0次
0.as?.jpg

is

is的功能相当于OC中的isKindOfClass,是否是这样某类的或者某类的子类的实例对象

as

1.向上转型,代码

class Person{}
class Programmer:Person{}
let pro = Programmer()
let p = pro as Person

2.数值类型转换

let num = 3 as Int
let num = 0.3 as CGFloat

3.switch语句中进行模式匹配

switch p{
     case let teacher as Teacher:
           print("是老师")
     case let student as Student:
           print("是学生")
     default: break
}

as!

向下转型,代码

class Person{}
class Programmer:Person{}
let p:Person = Programmer()
let pro = p as! Programmer

将一个父类类型转成了一个子类类型,如果转换失败,运行时会报错

as?

和as!转换规则一样,但如果转换失败不会报错而是返回nil,转换成功返回一个可选类型。

相关文章

网友评论

    本文标题:swift中的is、as?、as!、as

    本文链接:https://www.haomeiwen.com/subject/unsbektx.html