gpt4 book ai didi

swift - 如何快速检查 `Any(not Any?)` 是否为零

转载 作者:行者123 更新时间:2023-11-30 10:49:14 25 4
gpt4 key购买 nike

我在swift中使用Mirror,我发现Mirror.Child很奇怪,标签可以为空,但值似乎不能为空。

public typealias Child = (label: String?, value: Any)

我不知道如何检查该值是否为零。

let b: Bool? = true
let a: Any = b
print(a == nil) // false

我有一个解决方案:

print(String(describing: a) == "nil") // true

但这显然不是一个好的解决方案。

检查 a 是否为零的最佳方法是什么?

让我提供更多细节,

let mirror = Mirror(reflecting: object) // object can be any object.
for child in mirror.children {
guard let label = child.label else {
continue
}
// how to check if the value is nil or not here ?
setValue(child.value, forKey: label)
}

最佳答案

使用 if case :

您可以使用if case Optional<Any>.none = a测试是否 anil :

var b: Bool?
var a = b as Any
if case Optional<Any>.none = a {
print("nil")
} else {
print("not nil")
}
nil
b = true
a = b as Any
if case Optional<Any>.none = a {
print("nil")
} else {
print("not nil")
}
not nil
<小时/>

使用 switch :

您可以使用 switch 进行模式测试还有:

var b: Bool?
var a = b as Any

switch a {
case Optional<Any>.none:
print("nil")
default:
print("not nil")
}
nil

关于swift - 如何快速检查 `Any(not Any?)` 是否为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55010893/

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