我正在查看实现pageviewcontroller的代码,我不明白这行代码:
>>> find_number('abc123de34','e')
34
>>> find_number('abc123de34','de')
34
let currentIndex: Int = subViewController.index(of: viewController) ?? 0
是什么意思?
在此背景下使用它:
??
答案 0 :(得分:0)
在左侧有一个表达式,其计算结果为可选(值或零),在右侧,您提供一个默认值,如果左侧被评估为nil,则使用该值。
let currentIndex: Int = subViewController.index(of: viewController) ?? 0
在您的示例中,subViewController.index(of: viewController)
是左侧,其值为可选整数 - Int?
。但是,为了确保您不必处理可选值,在右侧提供默认值“0”。感谢currentIndex
总是有值。
如果您熟悉三元运算符,则将其解释为:
let currentIndex: Int = subViewController.index(of: viewController) != nil ? subViewController.index(of: viewController)! : 0
或if-else
语法:
let currentIndex: Int
if subViewController.index(of: viewController) != nil {
currentIndex = subViewController.index(of: viewController)!
} else {
currentIndex = 0
}