2014-09-28 50 views
3

我收到一個奇怪的錯誤,我不禁想到是編譯器錯誤。在斯威夫特,在任何一個遊樂場或iOS應用程序,如果我做了以下...

let array = [0, 1, 2, 3, 4, 5] 
let sum = array[0] + array[1] + array[2] + array[3] + array[4] + array[5] 

...我得到以下編譯器錯誤。

cannot invoke '+' with an argument list of type '($T28, $T32)' 

只是爲了咧嘴笑,我把它改爲一個字符串數組,我得到了相同的結果。但是,如果我只是添加前五個值,則不會出現錯誤。撇開這不是總結這些數字的最佳方式的事實,這不是編譯器錯誤?

如果它不是編譯器錯誤,爲什麼不呢?

回答

4

如果您嘗試創建一個整數數組:

let array:[Int] = [0, 1, 2, 3, 4, 5] 

我有同樣的問題。我猜編譯器不能識別你的數組值。

如果你使用:

let sum = Int(array[0]) + Int(array[1]) + Int(array[2]) + Int(array[3]) + Int(array[4]) + Int(array[5]) 

它按預期工作。

+0

謝謝你。有趣的方式來強制它。我希望有一種方法可以接受這兩個答案,因爲兩者都證實了我的問題,即這是編譯器錯誤。 – Mallioch 2014-09-29 01:21:29

+0

這個問題有更多的問題:http://stackoverflow.com/questions/26088184/could-not-find-member-subscript/26088212?noredirect=1#comment40880289_26088212 – 2014-09-29 01:56:53

相關問題