微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

参见英文答案 > ?? 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐