如何在Swift中使用"?: "?

7

我喜欢Objective-C语言中的这种语法,使用问号和冒号可以让你使用备用值:

NSString const name = [self getName] ?: @"backup";

我想在 Swift 中使用相同的方法,但是尝试后出现以下错误:

<code>let name = getName() ?: "backup";</code> results in errors where the compiler completely doesn't recognize the syntax

有没有办法在 Swift 中实现这个功能? 如果没有,我可以编写自定义的中缀运算符来实现吗?


1
哦,这叫做“null 合并”?谢谢!这对于在谷歌上搜索很有帮助。 - Ky -
1
命名为“空值合并运算符”的Swift。 :) https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html#//apple_ref/doc/uid/TP40014097-CH6-ID72 - Eric Aya
1个回答

14

它被称为空(或nil)合并运算符,Swift 语法如下:

let name = getName() ?? "backup";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接