gpt4 book ai didi

Swift 可选和强制展开

转载 作者:行者123 更新时间:2023-11-28 11:22:58 26 4
gpt4 key购买 nike

我很难理解 Swift 语言中的可选值和强制展开。这本书和章节我看了好几遍,但我还是看不懂。

下面两个有区别吗:

totalAmountTextField?.text.toInt()

totalAmountTextField!.text.toInt()

此外,在声明 IBOutlets 时,为什么我总是将它设为一个可选字段,如下所示:

@IBOutlet var nameTextField :UITextField?

如果我不使用“?”最后它会给出错误。

最佳答案

totalAmountTextField?.text.toInt() 等价于

func foo() -> Int? { // give you optional Int
if let field = totalAmountTextField {
return field.text.toInt()
} else {
return nil // return nil if totalAmountTextField is nil
}
}

foo()

如果 totalAmountTextField 可以是 nil,则应该使用它


totalAmountTextField!.text.toInt() 等价于

func foo() -> Int { // give you Int
if let field = totalAmountTextField {
return field.text.toInt()
} else {
crash() // crash if totalAmountTextField is nil
}
}

foo()

仅当您知道 totalAmountTextField 不能为 nil 时才应使用它

关于Swift 可选和强制展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com