gpt4 book ai didi

swift - 可选的解包 nil 并不总是 fatal error

转载 作者:行者123 更新时间:2023-11-28 06:03:25 25 4
gpt4 key购买 nike

为什么这段代码给我一个 fatal error

var number: Int? = .none
print(number!)

Fatal error: Unexpectedly found nil while unwrapping an Optional value

但是这段代码没有?

var number: Int! = .none
print(number)

nil

不是 Int!使用时自动解包变量?为什么打印数字时不抛出 fatal error ?

最佳答案

Optional 是一种可以包含或不包含包装值的类型。

在第一种情况下,您在代码内部告诉 numbers 包含一个 Int 变量(这是因为 numbers!) ,这是使用 Optionals 的一种非常不安全的方式。当您打开 numbers 时,它必须包含一个值,或者相​​反,它不能是 nil。由于编译器实际上发现没有 Int 值而是 nil,所以它调用 fatal error 。

相反,在第二种情况下,您只是打印一个 Optional,它可以包含或不包含 Int 值。在这种特定情况下,它不包含 Int 值,因此将打印 nil

在这里你可以找到关于Optionals的更多信息: https://developer.apple.com/documentation/swift/optional

关于swift - 可选的解包 nil 并不总是 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48895675/

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