在下面的代码中,为什么 5 没有分配给 "somevar" ?
class ViewController: UIViewController {
var somevar : Int?
override func viewDidLoad() {
super.viewDidLoad()
somevar! = Int(5) // why 5 is not assigned to somevar here
}
}
背景:
somevar
被声明为可选变量,这意味着如果此变量为 nil,则使用此变量的命令将被忽略。
例子:
class ViewController: UIViewController {
var somevar : Int?
override func viewDidLoad() {
super.viewDidLoad()
somevar? = 5 // this command will be ignored bcz somevar is nil
}
}
为了在我们自己的风险下强制执行命令,我们使用“隐式解包可选”,以便我们确定命令将被执行,在这种情况下执行以下行
somevar! = 5
致命错误:在展开可选值时意外发现 nil
执行此行时,为什么没有将“5”分配给“somevar”而是发生致命错误?
class ViewController: UIViewController {
var somevar : Int?
override func viewDidLoad() {
super.viewDidLoad()
somevar! = 5
}
}