gpt4 book ai didi

swift - 为什么我可以在 Swift 中将 NSNumber 的值设置为 true/false?

转载 作者:可可西里 更新时间:2023-11-01 00:53:48 25 4
gpt4 key购买 nike

var num = NSNumber(bool: false)
num = true
println(num) // "1"

num 是一个 NSNumber 实例,而 true 是一个 Boolean 实例。为什么允许这样做,它是如何工作的?

我感觉它实现了某种转换器,所以如果是这样的话,我将如何为我的自定义类实现任意转换器?

最佳答案

NSNumber 可以包含数字(int、float、...)和 bool 值。

在 Swift 标准库中,Boolean 类型实现了到 NSNumber 的转换,你可以通过添加一个 func __conversion() 方法来做同样的事情你的类(class),像这样:

class MyNumber {
func __conversion() -> NSNumber {
return NSNumber(float: Float.infinity)
}
}

var i = NSNumber(int: 1)
i = MyNumber()

关于swift - 为什么我可以在 Swift 中将 NSNumber 的值设置为 true/false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247886/

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