【发布时间】:2014-07-08 19:58:04
【问题描述】:
简单的游乐场代码如下:
var array :[Int?]
array = [1, 2, 3]
array![1] = 4
从 Playground 收到错误
Playground 执行失败:错误::8:1:错误:'@lvalue $T6' 与 'Int?' 不同 数组![1] = 4
有什么建议吗?
【问题讨论】:
简单的游乐场代码如下:
var array :[Int?]
array = [1, 2, 3]
array![1] = 4
从 Playground 收到错误
Playground 执行失败:错误::8:1:错误:'@lvalue $T6' 与 'Int?' 不同 数组![1] = 4
有什么建议吗?
【问题讨论】:
您正在定义一个可选 Int 的非可选数组。当您尝试访问它时,您试图强制解开数组本身,这是不必要的。你可以这样做:
array[1] = 4
非可选 Int 的可选数组如下所示:
var array: [Int]?
【讨论】:
好的,我自己得到答案
var array :[Int]?
array = [1, 2, 3]
if var tmpArray = array {
tmpArray[1] = 4
array = tmpArray
}
我怎么能这么说,缺点和优点
【讨论】: