栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

带有“?”的快速可变装饰 (问号)和“!” (感叹号)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

带有“?”的快速可变装饰 (问号)和“!” (感叹号)

在类型声明中,

!
类似于
?
。两者都是可选的,但是
!
是“
隐式展开的”可选的,这意味着您不必解包即可访问值(但它仍然可以为nil)。

这基本上是我们在Objective-C中已经拥有的行为。值 可以
为nil,您必须检查该值,但是您也可以直接访问该值,就好像它不是可选值一样(重要的区别是,如果不检查nil,您将得到一个运行时错误)

// Cannot be nilvar x: Int = 1// The type here is not "Int", it's "Optional Int"var y: Int? = 2// The type here is "Implicitly Unwrapped Optional Int"var z: Int! = 3

用法:

// you can add x and zx + z == 4// ...but not x and y, because y needs to be unwrappedx + y // error// to add x and y you need to do:x + y!// but you *should* do this:if let y_val = y {    x + y_val}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383402.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号