gpt4 book ai didi

swift - 类型转换需要解包?

转载 作者:搜寻专家 更新时间:2023-11-01 06:27:28 24 4
gpt4 key购买 nike

var a: String = "1"
var b: Int = Int(a)

上面的例子触发了一个错误,提示 Int 需要解包。

var a: String = "1"
var b = Int(a)

但是,如果我们在声明 b 时忽略类型并执行相同的操作,则不会触发任何错误。

这两种方法有什么区别?为什么第一个需要解包,即使它没有被声明为可选的?

最佳答案

这是因为在第一个例子中你说 b 是类型 Int 而在第二个例子中因为你没有明确类型编译器将它设置为 整数?

因为 Int(string) 只有当 string 可以解释为 Int 时才会起作用,所以 Int("3")->3 但如果你说 Int("text")->nil 它应该做什么,因为它无法将字符串解析为 Int

如果您愿意,可以在第一个示例中提供默认值,这样就可以了。

var b: Int = Int(a) ?? 0

关于swift - 类型转换需要解包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52145207/

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