【发布时间】:2017-05-22 08:26:32
【问题描述】:
我有一个 Doubles 数组,还有一个按钮,按下该按钮会清空数组。我希望仅当数组的计数大于零时才启用按钮。代码如下:
var numbers: [Double] = [] //At some point I add some numbers here
numbers.count > 0 ? deleteAllNumbersButton.isEnabled = true : deleteAllNumbersButton.isEnabled = false
编译器抱怨:
'? 中的结果值:' 表达式具有不匹配的类型 '()' 和 '布尔'
当放入 if statement 时,它工作得很好。我无法理解这里的问题。有没有人见过这个?我使用 XCode 8.2.1 和 Swift 3。
【问题讨论】:
-
不要使用三元来进行副作用。这完全违背了他们的目的。
-
@Carcigenicate 你能解释一下,或者发布任何链接来阅读它吗?
-
我会考虑重构为
deleteAllnumbersButton.isEnabled = numbers.count > 0并在您从数组中推送或删除某些内容时调用它
标签: ios swift ternary-operator