问题很简单,但我找不到答案!
为什么不呢
return x == 0? "" : "Hello"
编译但是
return x == 0 ? "" : "Hello"
呢?
这真的很奇怪,因为所有其他运营商都不需要额外的空白区域.例如
let x = 1+1 let y = 1 + 1
是相同的.
我认为这与选项有关.但是当你?
对变量使用运算符时,它必须像这样使用:
let s: String? = nil let x = s?.startIndex
我的意思是它必须跟随另一个运营商,对吗?
我认为这与选项有关.
确实如此.关于运营商的文件说:
规则[关于运营商周围的空白]有一点需要注意.如果
!
或?
预定义运算符在左侧没有空格,则将其视为后缀运算符,而不管它是否在右侧有空格.要使用?
可选链接运算符,它必须在左侧没有空格.要在三元条件(?
:
)运算符中使用它,它必须在两边都有空格.