標籤:io for cti re c ar
下標指令碼 可以定義在類(Class)、結構體(structure)和枚舉(enumeration)這些目標中,可以讓這些類型的執行個體通過[]快速存取屬性和方法.
subscript(index: Int) -> Int { get { // 返回與入參匹配的Int類型的值 } set(newValue) { // 執行賦值操作 }}
通常下標指令碼是用來訪問集合(collection),列表(list)或序列(sequence)中元素的捷徑
struct Matrix { let rows: Int, columns: Int var grid: Double[] init(rows: Int, columns: Int) { self.rows = rows self.columns = columns grid = Array(count: rows * columns, repeatedValue: 0.0) } func indexIsValidForRow(row: Int, column: Int) -> Bool { return row >= 0 && row < rows && column >= 0 && column < columns } subscript(row: Int, column: Int) -> Double { get { assert(indexIsValidForRow(row, column: column), "Index out of range") return grid[(row * columns) + column] } set { assert(indexIsValidForRow(row, column: column), "Index out of range") grid[(row * columns) + column] = newValue } }}var matrix = Matrix(rows: 2, columns: 2)let someValue = matrix[2, 2]