我现在有这个代码:
if let isSaved = vm.place?.isSaved {
Text(isSaved ? "Saved" : "Want to go")
} else {
Text("Want to go")
}
字符串
我如何重写它来避免使用Text
视图的“Want to go”版本两次?
如果我试着:
Text(vm.place?.isSaved ? "Saved" : "Want to go")
型
我得到错误:
必须将可选类型“Bool?”的值解封装为类型“Bool”的值
1条答案
按热度按时间yacmzcpb1#
实际上,
vm.place?.isSaved
返回Optional<Bool>
,它有3
的情况:字符串
这就是不能直接使用三元运算符的原因。
你可以通过忽略以下情况来摆脱可选性:
型
或者给它一个默认值,比如:
型
也许将代码分开一点有助于它更清晰:
型