鉴于以下测试代码,为什么字符串插值\(t1)和\(t2)不起作用?重命名description
会导致编译器失败并输入" Type' Test'不符合协议' Printable'"鉴于每次测试的第二次印刷,description
显然是有效的。
enum Test: Printable {
case A
case B(Int)
var description: String {
switch self {
case .A:
return ".A"
case let .B(value):
return ".B: value = \(value)"
}
}
}
let t1 = Test.A
let t2 = Test.B(-100)
println("t1 = \(t1)") // prints "t1 = (Enum Value)"
println(t1.description) // prints ".A"
println("t2 = \(t2)") // prints "t2 = (Enum Value)"
println(t2.description) // prints ".B: value = -100"
答案 0 :(得分:5)
请注意,打印为(Enum Value)
的枚举是Swift 1.0版(swift-600.0.51.3)中的已知错误。它将在未来版本中修复。