在Swift中访问枚举关联值

前端之家收集整理的这篇文章主要介绍了在Swift中访问枚举关联值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在这段代码中,我写了一个非常无用的枚举,定义了一个可能的数字与Int或Float。

我无法理解如何访问我使用关联设置的值。如果我尝试打印,我得到(枚举值)

enum Number {
    case int (Int)
    case float (Float)
}

let integer = Number.int(10)
let float = Number.float(10.5)
println("integer is \(integer)")
println("float is \(float)")
该值与枚举的实例相关联。因此,要在没有交换机的情况下访问它,您需要使一个getter并使其明确可用。如下所示:
enum Number {
    case int(Int)
    case float(Float)

    func get() -> NSNumber {
        switch self {
        case .int(let num):
            return num
        case .float(let num):
            return num
        }
    }
}

var vInteger = Number.int(10)
var vFloat = Number.float(10.5)

println(vInteger.get())
println(vFloat.get())

也许未来可能会自动创建类似的东西,或者可以将更短的方便添加到语言中。

猜你在找的Swift相关文章