我正在寻找一种方法来打印Swift中枚举的相关值。例如,下面的代码应该为我打印出“ABCDEFG”,但实际上并没有打印出来。
enum Barcode {
case UPCA(Int, Int, Int, Int)
case QRCode(String)
}
var productCode = Barcode.QRCode("ABCDEFG")
println(productCode)
// prints (Enum Value)
阅读这个 stackoverflow 问题的答案,该问题涉及打印枚举的原始值。我尝试了以下代码,但是它给了我一个错误。
enum Barcode: String, Printable {
case UPCA(Int, Int, Int, Int)
case QRCode(String)
var description: String {
switch self {
case let UPCA(int1, int2, int3, int4):
return "(\(int1), \(int2), \(int3), \(int4))"
case let QRCode(string):
return string
}
}
}
var productCode = Barcode.QRCode("ABCDEFG")
println(productCode)
// prints error: enum cases require explicit raw values when the raw type is not integer literal convertible
// case UPCA(Int, Int, Int, Int)
// ^
由于我刚接触Swift,无法理解这个错误信息的含义。有人知道是否可能吗?
case let (a, b)
相当于case (let a, let b)
。 - rkb