swift可选数组下标

时间:2014-07-08 19:58:04

标签: arrays swift optional

简单的游乐场代码如下:

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

Playground出错

  

游乐场执行失败:错误:: 8:1:错误:' @lvalue $ T6'与' Int?'不相同?   数组![1] = 4

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您正在定义一个非可选的Ints数组。当您尝试访问它时,您试图强制打开阵列本身,这是不必要的。你可以这样做:

array[1] = 4

可选的非可选Int数组如下所示:

var array: [Int]?

答案 1 :(得分:0)

好的,我自己得到了答案

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

我怎么能这样说,Cons& Pros