加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift !?

发布时间:2020-12-14 07:08:37 所属栏目:百科 来源:网络整理
导读:在object-c中,nil实际上被定义为一个指向0的void指针。严格说来,它是一个数字,这就意味着我们可以进行类似下面的操作: int i = (int) (nil)+2; //等于2(因为0+2=2) 这在swift中是不允许的,因为nil和Int 是不同的类型。 swift中的所有变量都是需要有取

在object-c中,nil实际上被定义为一个指向0的void指针。严格说来,它是一个数字,这就意味着我们可以进行类似下面的操作:

int i = (int) (nil)+2;

//等于2(因为0+2=2)


这在swift中是不允许的,因为nil和Int 是不同的类型。


swift中的所有变量都是需要有取值的。如果希望允许一个亦是在某些时候为nil,那就使它成为一个可选变量。可选变量的定义是在其类型中包含一个问号(?):

//可选 整数,允许为nil。

var anOptionalInteger : Int ? = nil

anOptionalInteger = 42


只有可选变量才允许被设置为nil。如果一个亦是没有被定义为nil,那就不允许将它设定为nil值:

//非可选(常规),不允许为nil。

var aNonOptionalInteger = 42

aNonOptionlInteger = nil

//错误:只有可选值才能为nil


可以使用if语句来查看一个可选变量是否拥有值:

if anOption胰腺 != nil{

print("it has a value")

}else{

print("It has no value.")

}


2.对于可选变量,可以进行拆包(unwrap)操作,获得其取值。这一工作用!字符实现。

请注意,如果对一个可选变量进行拆包,而它并没有值,程序将会抛出一个运行时错误,并会崩溃:

//可选类型必须使用!拆包

anOptionalInteger = 2

1+anOptionalInteger! //=3


anOptionalInteger = nil

1+anOptionalInteger!

//崩溃:anOptionalInteger = nil,不能使用nil数据

如果不希望在每次用到可选变量时都要对其进行拆包,可以将它们声明为已拆包的,像下面这样:

var unwrappendOptionalInteger: Int !

unwrappedOptionalInteger = 1

1+ unwrppedOptionalInteger // =2


这样就可以直接使用它们的值,但可能会不安全(因为它让你逃避了在需要时对其进行拆包的操作,可能会让你忘了它们有时会有nil)。请谨慎使用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读