Подскажите, новичку, есть такая структура:
struct Matrix {
let rows: Int, columns: Int
var grid: [Double]
init(rows: Int, columns: Int) {
self.rows = rows
self.columns = columns
grid = Array(repeating: 0.0, count: rows * columns)
}
func indexIsValid(row: Int, column: Int) -> Bool {
return row >= 0 && row < rows && column >= 0 && column < columns
}
subscript(row: Int, column: Int) -> Double {
get {
assert(indexIsValid(row: row, column: column), "Index out of range")
return grid[(row * columns) + column]
}
set {
assert(indexIsValid(row: row, column: column), "Index out of range")
}
}
}
С помощью инициализатора задаем количество строк и столбцов и создаем массив для значений, который первоначально инициализируем нулями.
Далее создаем экземпляр типа и задаем конкретное количество строк и столбцов:
var matrix = Matrix(rows: 2, columns: 2)
Затем с помощью сабскриптов задаем значения для массива с указанием ячеек сетки по индексам строк и столбцов
matrix[0, 1] = 1.5
matrix[1, 0] = 3.2
Т.е. здесь в нулевую строку и первый по индексу столбец задается значение 1.5, а в первую по индексу строку и нулевой столбец задается значение 3.2
Но как увидеть эти значения?
Увидеть количество строк и столбцов по идее понятно:
matrix.rows
matrix.columns
Но если попытаться посмотреть массив
matrix.grid
то выдает нули, как и при первоначальной инициализации.
Так а как же тогда увидеть эти значения, которые присвоены с помощью сабскриптов?