作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难理解 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/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!