Why ternary operator in swift is so picky?

大城市里の小女人 提交于 2019-12-01 15:28:06

I think it has something to do with optionals.

It does. The documentation on operators says:

There is one caveat to the rules [regarding whitespace around operators]. If the ! or ? predefined operator has no whitespace on the left, it is treated as a postfix operator, regardless of whether it has whitespace on the right. To use the ? as the optional-chaining operator, it must not have whitespace on the left. To use it in the ternary conditional (? :) operator, it must have whitespace around both sides.

Yes, I'm pretty sure (as you presumed) the problem is with optionals.

I prefer to write my ternary operators like this...

let num = (isTrue) ? (1) : (0)

Of course, you can choose what's in the parentheses, whether it's simply a literal (as shown) or not.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!