Swift 2D阵列可选类型和订阅(Beta 3)
我有一个在Beta 2中工作的2D阵列。然而,在Beta 3中,当通过下标进行设置时,我得到了“@lvalue$T15与T不相同”Swift 2D阵列可选类型和订阅(Beta 3),swift,Swift,我有一个在Beta 2中工作的2D阵列。然而,在Beta 3中,当通过下标进行设置时,我得到了“@lvalue$T15与T不相同” class Array2D<T> { let columns: Int let rows: Int let array: [T?] init(columns: Int, rows: Int) { self.columns = columns self.rows = rows array = [T?](count: rows*c
class Array2D<T> {
let columns: Int
let rows: Int
let array: [T?]
init(columns: Int, rows: Int) {
self.columns = columns
self.rows = rows
array = [T?](count: rows*columns, repeatedValue: nil)
}
subscript(column: Int, row: Int) -> T? {
get {
return array[row*columns + column]
}
set {
array[row*columns + column] = newValue // Error here
}
}}
类数组2d{
let列:Int
让行:Int
let数组:[T?]
init(列:Int,行:Int){
self.columns=列
self.rows=行
数组=[T?](计数:行*列,repeatedValue:nil)
}
下标(列:Int,行:Int)->T{
得到{
返回数组[行*列+列]
}
设置{
数组[row*columns+column]=newValue//此处出错
}
}}
在Beta3中,常量数组是完全不可变的,而变量数组是完全可变的。将
让数组:[T?]
更改为变量数组:[T?]
,您的代码应该可以工作。在Beta3中,常量数组是完全不可变的,而变量数组是完全可变的。将let array:[T?]
更改为var array:[T?]
,您的代码应该可以工作