是否可以像这样同时使用可选链接和 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/