如何获得枚举值的值?

伊格纳特

在Apple的“快速浏览”中,他们具有以下代码段:

enum OptionalValue<T> {
    case None
    case Some(T)
}
var possibleInteger: OptionalValue<Int> = .None
possibleInteger = .Some(100)

您将如何获得100?您无法possibleInteger == 100测试possibleInteger内部是否具有值100。我知道您可以将函数放在枚举中,但是不能有变量。也许我理解枚举错误…

如果Optional在声明可选(var x:Optional<Int>命令单击,我可以找到

enum Optional<T> : Reflectable, NilLiteralConvertible {
    case None
    case Some(T)
    init()
    init(_ some: T)

    /// Haskell's fmap, which was mis-named
    func map<U>(f: (T) -> U) -> U?
    func getMirror() -> MirrorType
    static func convertFromNilLiteral() -> T?
}

但是我不明白这意味着什么。帮助?

迈克·S

您可以使用switch语句获取值,如此处所述相关位:

...关联的值可以作为switch语句的一部分提取。您可以将每个关联的值提取为一个常量(带有let前缀)或一个变量(带有var前缀),以便在开关盒的主体内使用:

对于您的情况,您需要以下内容:

switch possibleInteger {
case .Some(let value):
    println(value)
case .None:
    println("<None>")
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章