Swift学习笔记附属脚本

swift的附属脚本,就相当于C#里的索引器

struct TimesTable {
    let multiplier: Int
    subscript(index: Int) ->Int{
        return multiplier * index
    }
}
let threeTimesTable = TimesTable(multiplier: 3)
threeTimesTable[6]

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 {
            return grid[(row * columns) + column]
        }
        set {
            grid[(row * columns) + columns] = newValue
        }
    }
}
var matrix = Matrix(rows: 2, columns: 2)
matrix[0,1] = 1.5
matrix[1,0] = 3.2

用法上与C#的索引器没有太大区别

你可能感兴趣的:(swift)