Это модификация примера параметров нижнего индекса, представленного в официальном документе Apple.
, поэтому я создаю структуру -
struct Matrix {
let rows: Int, columns: Int
var print: [Double]
init(rows: Int, columns: Int) {
self.rows = rows
self.columns = columns
print = Array(repeating:0.0, count:rows * columns)
}
subscript(row: Int, column: Int) -> Double {
get {
return print[(row * columns) ]
}
set {
print[(row * columns) ] = newValue
}
}
}
и создаю экземпляр -
var mat = Matrix(rows: 3, columns: 3)
теперь, если я просто установлю значения -
mat[0,0] = 1.0
и напечатаю -
print("\(mat[0,0])") //1.0
, то будет напечатано 1,0, что и должно быть
но когда я изменяю выше и устанавливаю и печатаю значения следующим образом -
mat[0,0] = 1.0
mat[0,1] = 2.0
и теперь, если я сейчас печатаю
print("\(mat[0,0])") // 2.0
, мой вопрос, почему это [0,0]стал 2.0, хотя я не изменил его.