gpt4 book ai didi

swift 4 : Printing out Bool optionals as either unwrapped true or false or as wrapped nil?

转载 作者:行者123 更新时间:2023-11-28 09:35:30 26 4
gpt4 key购买 nike

基本上,我想将以下值打印为“true”、“false”或“nil”。如果我尝试只使用包装值,我会得到我想要的“nil”,但会得到不需要的“Optional(true)”或“Optional(false)”。如果我强制解包值并且值为 nil,我会得到一个 fatal error 。我尝试了下面的代码,因为我看到它适用于字符串,但是因为“nil”不是 Bool 类型,所以它不被接受。对此有什么解决方案吗?

var isReal: Bool?
String("Value is \(isReal ?? "nil")")

我正在导出到 csv 文件,了解此值是真还是假或尚未检查非常有用。

最佳答案

如果你想要一条线:

var isReal: Bool?
let s = "Value is \(isReal.map { String($0) } ?? "nil")"
print(s) // "Value is nil"

或者使用自定义扩展:

extension Optional {
var descriptionOrNil: String {
return self.map { "\($0)" } ?? "nil"
}
}

你可以做到

var isReal: Bool?
let s = "Value is \(isReal.descriptionOrNil)"
print(s) // "Value is nil"

这适用于所有可选类型。

关于 swift 4 : Printing out Bool optionals as either unwrapped true or false or as wrapped nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933285/

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