什么??意思?

时间:2018-02-03 17:41:02

标签: ios swift

我正在查看实现pageviewcontroller的代码,我不明白这行代码:

>>> find_number('abc123de34','e')
34
>>> find_number('abc123de34','de')
34

let currentIndex: Int = subViewController.index(of: viewController) ?? 0 是什么意思?

在此背景下使用它:

??

1 个答案:

答案 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
}