我是靠谱客的博主 可靠翅膀,最近开发中收集的这篇文章主要介绍swift as ?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

as我的理解是类型转换
比如
子类继承父类
[color=#FF0000]class SonTwo: Person {
    var twoName = "我是son2"
    override init() {
        super.init()
        self.name = twoName
    }
}[/color]
per3是person类型的属性接受子类的实例
[color=#FF0000]let per3:Person = SonTwo()[/color]
[size=4][color=#FF0000]as!用法[/color][/size]
把per3转换成子类类型,然后输出
[color=#FF0000]let p1 = per3 as! SonTwo
print("p1",p1,"per3",per3)[/color]
输出:[color=#FF0000]p1 <SwiftTest.SonTwo: 0x60800009f590> per3 <SwiftTest.SonTwo: 0x60800009f590>[/color]
我们发现它们的地址都是一样的,本质上还是sontwo类型的
[size=4][color=#FF0000]asas是向上转换[/color][/size]as是向上转换
我们把per3用as转换成父类的类型然后打印
[color=#FF0000]let p2 = per3 as Person
print("p2",p2)[/color]
输出:p2 <SwiftTest.SonTwo: 0x60800009f590>
可以看出它们的地址都是一样的还是sontwo类型
还可以用于数值类型转换
let num1 = 20 as Float
as?和as!用法相反,as!转换的结果必须有值不能是空的,否则报错。as?转换的结果如果没有值可以是空,另外as?和as!是向下转换。

最后

以上就是可靠翅膀为你收集整理的swift as ?的全部内容,希望文章能够帮你解决swift as ?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部