【发布时间】:2021-03-07 09:47:37
【问题描述】:
什么是 Haskell Show 的 Swift 等价物,可以在带有案例的枚举中打印值?我读过 Show 与 Java toString() 方法非常相似,Swift CustomStringConvertible 可能是一个不错的选择。
例如,在 Fraction 实例上使用 print 会显示:
> Fraction(numerator: 1, denominator: 2)
我不想打印整个案例,而是只打印中间有斜线的数字。例如“1/2”。
我当前的代码如下:
enum MyNum: Equatable {
case Fraction(numerator: Int, denominator: Int)
case Mixed(whole: Int, numerator: Int, denominator: Int)
}
extension MyNum: CustomStringConvertible {
var description: String {
return "(\(Fraction.numerator) / \(Fraction.denominator))"
}
}
var testFraction= MyNum.Fraction(numerator: 1, denominator: 2)
print(testFraction)
【问题讨论】:
-
我不知道 Haskell,但在 swift 中,java 中的 toString 等价于遵循 CustomStringConvertible 协议。但是您需要改进您的问题并包含您的快速代码并解释您想要实现的目标以及这样做的问题。斯威夫特 3,真的吗?现在已经很古老了。
标签: swift customstringconvertible