首页 > 其他 > 详细

swift 下标脚本

时间:2014-07-22 08:00:07      阅读:286      评论:0      收藏:0      [点我收藏+]

下标脚本 可以定义在类(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]

swift 下标脚本,布布扣,bubuko.com

swift 下标脚本

原文:http://www.cnblogs.com/zhepama/p/3857585.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!