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

swift中“??”的含义是什么?

发布时间:2020-12-14 04:46:59 所属栏目:百科 来源:网络整理
导读:参见英文答案 ?? operator in Swift????????????????????????????????????5个 我在Swift中遇到了一个语法,其中使用了双重问号(“??”). 例如,让val =某事[“某事”]为?字串?零 这到底是什么意思?这种语法有哪些用例? 解决方法 Nil-Coalescing运算符 这是
参见英文答案 > ?? operator in Swift????????????????????????????????????5个
我在Swift中遇到了一个语法,其中使用了双重问号(“??”).

例如,让val =某事[“某事”]为?字串?零

这到底是什么意思?这种语法有哪些用例?

解决方法

Nil-Coalescing运算符

这是一种简短的形式. (表示如果[“something”]为零或可选,您可以指定默认值nil或任何其他值)

let val = (something["something"] as? String) != nil ? (something["something"] as! String) : "default value"

如果a包含值,则nil-coalescing运算符(a ?? b)展开可选a;如果a为n,则返回默认值b.表达式a始终是可选类型.表达式b必须与存储在a中的类型匹配.

nil-coalescing运算符是下面代码的简写:

a!=零?一个! :b
上面的代码使用三元条件运算符和强制解包(a!)来访问包含在a不是nil时的值,否则返回b. nil-coalescing运算符提供了一种更简洁的方式来以简洁易读的形式封装此条件检查和解包.

如果a的值不为nil,则不评估b的值.这被称为短路评估.

下面的示例使用nil-coalescing运算符在默认颜色名称和可选的用户定义颜色名称之间进行选择:

let defaultColorName = "red"
var userDefinedColorName: String?   // defaults to nil

var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName is nil,so colorNameToUse is set to the default of "red"

见第Nil-Coalescing Operator here节

(编辑:李大同)

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

    推荐文章
      热点阅读