给定以下枚举:
enum Audience {
case Public
case Friends
case Private
}
我如何获取字符串"Public"
来自audience
下面常数?
let audience = Audience.Public
“获取字符串”的惯用接口是使用CustomStringConvertible
界面并访问description
吸气剂。您可以将“原始类型”指定为String
但使用description
隐藏“原始类型”实现;避免字符串比较switch/case
and如果您愿意的话,可以实现国际化。定义你的enum
as:
enum Foo : CustomStringConvertible {
case Bing
case Bang
case Boom
var description : String {
switch self {
// Use Internationalization, as appropriate.
case .Bing: return "Bing"
case .Bang: return "Bang"
case .Boom: return "Boom"
}
}
}
行动中:
> let foo = Foo.Bing
foo: Foo = Bing
> println ("String for 'foo' is \(foo)"
String for 'foo' is Bing
Updated:对于 Swift >= 2.0,替换Printable
with CustomStringConvertible
Note: Using CustomStringConvertible
allows Foo
采用不同的原始类型。例如enum Foo : Int, CustomStringConvertible { ... }
是可能的。这种自由很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)