swift - 我可以使用可选链接为可选属性提供默认值吗?

标签 swift option-type optional-chaining

是否可以像这样同时使用可选链接和 nil 合并?

print("Meeting host: " + meeting.host?.email ?? “No host”)

我想这样做,但我收到一条错误消息,提示我的字符串?没有展开。 email 是一个非可选的字符串。

这是否可能而无需事先解包 host?如果不能,为什么我尝试这样做不起作用?

最佳答案

您无需打开包装即可使用。这不是错误发生的原因。毕竟,?? 旨在处理此类情况。

错误的发生是因为运算符的优先级。编译器认为它应该首先评估 +,连接两个字符串,然后进行 nil 合并。它看到第二个操作数没有展开并发出提示。

为了使其产生预期的结果,通过添加括号明确告诉编译器首先评估 ??:

print("Meeting host: " + (meeting.host?.email ?? “No host”))

关于swift - 我可以使用可选链接为可选属性提供默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45352637/

相关文章:

ios - 如何在 Swift 中使用 Core Plot 创建图例

swift - 将一个 SKSpritenode 移向另一个 SKSpriteNode(磁铁)

swift - 避免在 swift 中将字符串视为可选

java - 有没有一种优雅的方法来打开包裹在 2 个嵌套的 Optionals 中的对象?

uitableview - Swift 赋值左侧使用的可选链接

swift - 如何在Core Data中保存一个实体的多个 "instances"?

ios - NSUserDefaults Multi 值为 nil

Java 8 Optional 如何处理太多 orElses

javascript - 您可能需要适当的加载程序来处理此文件类型。当我在 create-react-app 项目中使用可选链接运算符时

javascript - Expo Web 编译失败 "optional chaining"