Ios Swift 4.2使用(??)打开问题

Ios Swift 4.2使用(??)打开问题,ios,swift4.2,Ios,Swift4.2,swift 4.2出现奇怪的问题,并使用?? 简单代码: var someVar:String? override func viewDidLoad() { someOp = "print some string" subTitleLabel.text = "text one" + someVar ?? "unwrapped" } 编译器抛出错误: 必须将可选类型为“字符串”的值展开为类型为的值 “字符串” Swift 4.2发生了什么变化?这是因为 +的优先级高于??,因此

swift 4.2出现奇怪的问题,并使用
??

简单代码:

var someVar:String?

override func viewDidLoad() {
   someOp = "print some string"

    subTitleLabel.text = "text one" + someVar ?? "unwrapped"
}
编译器抛出错误:

必须将可选类型为“字符串”的值展开为类型为的值 “字符串”

Swift 4.2发生了什么变化?

这是因为

+
的优先级高于
??
,因此必须添加括号

subTitleLabel.text = "text one" + (someVar ?? "unwrapped")
这是因为天气原因

+
的优先级高于
??
,因此必须添加括号

subTitleLabel.text = "text one" + (someVar ?? "unwrapped")

1. <代码>??
不展开值,如果值为零,则默认值。2.使用括号是的,它是一个条件运算符,有点像if的缩写版本。。。elseits应该是工作的,你只需写取另一个值和相同的未包装变量other=someVar??使用subTitleLabel.text=“text one”+其他1后,再使用“unwrapped”<代码>??
不展开值,如果值为零,则默认值。2.使用括号是的,它是一个条件运算符,有点像if的缩写版本。。。elseits应该是工作的,你只需写取另一个值和相同的未包装变量other=someVar??“unwrapped”比使用subTitleLabel.text=“text one”+其他我想你在找BODMAS这个词。@RakeshaShastri是的,从没听说过。在印度,小学数学就是这样教我们的D@RakeshaShastri更清楚地说,BODMAS代表:括号-顺序(标记等)-除法-乘法-平差-减法。记住-
除法和乘法
具有相同的优先级“级别”,就像
加法和减法
一样。我想你在寻找BODMAS这个词。@RakeshaShastri是的,从来没有听说过。在印度,小学数学就是这样教我们的D@RakeshaShastri更清楚地说,BODMAS代表:括号-顺序(标记等)-除法-乘法-平差-减法。请记住-
除法和乘法
具有相同的优先级“级别”,就像
加法和减法
一样。