2014-07-08 39 views
-2

簡單操場代碼:迅速可選數組下標像下面

var array :[Int?] 
array = [1, 2, 3] 
array![1] = 4 

從遊樂場

Playground execution failed: error: :8:1: error: '@lvalue $T6' is not identical to 'Int?' array![1] = 4

任何建議傢伙得到了一個錯誤?

回答

0

OK,我自己得到了答案

var array :[Int]? 
array = [1, 2, 3] 
if var tmpArray = array { 
    tmpArray[1] = 4 
    array = tmpArray 
} 

我怎麼能說這個,缺點&優點

2

您正在定義可選Ints的非可選陣列。當你嘗試訪問它時,你試圖強制解包數組本身,這是不必要的。你可以簡單地做:

array[1] = 4 

非可選一個int數組(可選)應該是這樣的:

var array: [Int]? 
+0

我們都看到這是往哪裏去......不妨把它扔到這裏:https://devforums.apple.com/m essage/998882#998882 – Jack

+0

當我定義一個如下所示的可選數組時 var array:[Int]? 陣列= [1,2,3] 陣列[1] = 4 我得到這個 >遊樂場執行失敗:錯誤::8:1:錯誤: '@lvalue $ T6' 是不相同'Int' array![1] = 4 – xmkevinchen