在蘋果公司的「A迅速遊」他們有這樣的代碼片段:如何獲取枚舉值的值?
enum OptionalValue<T> {
case None
case Some(T)
}
var possibleInteger: OptionalValue<Int> = .None
possibleInteger = .Some(100)
你將如何得到100?您不能使用possibleInteger == 100
來測試possibleInteger
的值是否在100以內。我知道你可以在枚舉中放置函數,但是你不能有變量。也許我理解錯枚舉...
如果我命令,宣佈可選(var x:Optional<Int>
)時點擊Optional
,我能找到
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?
}
但我不明白任何的意思。幫幫我?
經過大量研究,我需要實現'getMirror()'函數。這會讓你在操場上展現出我正在努力做到的價值。那麼,研究這個「MirrorType」的東西。 另外,'convertFromNilLiteral() - > T?'只是在您將其設置爲nil時將枚舉設置爲'.None'。我仍然不知道'func map (f:(T) - > U) - > U?'。 – Ignat 2014-08-29 16:11:43
Re:'func map ...',看看:http://stackoverflow.com/questions/24395211/generic-within-a-generic-in-swift – 2014-08-29 16:53:19