在这段代码中,我编写了一个真正无用的枚举,该枚举定义了NumberInt或Float 的可能。
Number
我无法理解如何访问通过关联设置的值。如果我尝试打印它,我得到的只是(Enum Value)
(Enum Value)
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)")
该值与枚举的实例相关联。因此,要在不进行开关的情况下访问它,您需要使一个吸气剂并使其显式可用。如下所示:
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())
也许将来可能会自动创建类似的内容,或者为该语言添加更短的便利性。