0
有人想知道爲什麼這個代碼不能用Xcode 6 beta 7編譯嗎?它必須是一個非常愚蠢的錯誤,或編譯器的bug:使用下標(Swift)擴展數組。 Xcode 6 beta 7中的錯誤?
enum State : UInt8 {
case Off = 0
case On = 1
}
extension Array {
subscript (index: State) -> Element {
get {
let i = Int(index.toRaw())
return self[i]
}
set {
let i = Int(index.toRaw())
self[i] = newValue
}
}
}
class MyClass {
var results = [0, 7]
func getResult(#state: State) {
return results[state] // Error here: State not convertible to Int ????
}
}
我已經使用字典試圖[狀態:INT]代替數組[INT],並copiler也給出了錯誤。謝謝!
是啊......那麼「愚蠢的錯誤」選項勝。但Xcode似乎並沒有很好地評估正在發生的事情。編譯器應該知道沒有返回類型的函數不應該試圖返回任何東西,對吧?投擲「State not convertible to Int」在某種程度上會讓人誤解... – George 2014-09-05 14:59:41
...幾乎是所有的編譯器錯誤信息 - 當它沒有意義時,通常這是一個簡單的缺失事件,或者關於optionals的不正確使用 – Antonio 2014-09-05 15:01:40
There's相當多的混淆或相當通用的錯誤消息與Swift代碼相關。我希望在測試結束的時候能夠清理和改進這些功能。 – ColGraff 2014-09-05 15:02:28