Swift 2D Array可选类型和下标(Beta 3)

jca*_*pio 1 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*columns, repeatedValue: nil)
}

subscript(column: Int, row: Int) -> T? {
    get {
        return array[row*columns + column]
    }
    set {
        array[row*columns + column] = newValue  // Error here
    }
}}
Run Code Online (Sandbox Code Playgroud)

有关如何解决此问题的任何想法?

Con*_*nor 7

在Beta3中,常量数组是完全不可变的,而变量数组是完全可变的.更改let array: [T?]var array: [T?]您的代码应该工作.