我有这样的事情:
let index = row.section?.index ?? -1
什么是row.section
是零?
请帮助我理解这条线是如何工作的?
这很容易理解locationManager?.startUpdatingLocation()
:方法将在locationManager
不是nil
时执行。但是将赋值可选变量分配到notnull实例时让我感到困惑。
答案 0 :(得分:2)
nil-coalescing运算符(a ?? b)如果包含值,则展开可选a;如果a为n,则返回默认值b。表达式a始终是可选类型。表达式b必须与存储在。
中的类型相匹配在这种情况下,如果row.section为nil,则整个表达式(row.section?.index)为nil,因此index将设置为-1
此行?msgbox (1,,22)
?Application.Version = 12#
应该不正确。它必须包含在let index = row.section?.index