在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?
}
但是我不明白这意味着什么。帮助?
您可以使用switch
语句获取值,如此处所述。相关位:
...关联的值可以作为switch语句的一部分提取。您可以将每个关联的值提取为一个常量(带有let前缀)或一个变量(带有var前缀),以便在开关盒的主体内使用:
对于您的情况,您需要以下内容:
switch possibleInteger {
case .Some(let value):
println(value)
case .None:
println("<None>")
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句