加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift2 Subscripts

发布时间:2020-12-14 02:00:23 所属栏目:百科 来源:网络整理
导读:下标脚本语法 subscript(index: Int) - Int { get { // 返回与入参匹配的Int类型的值 } set(newValue) { // 执行赋值操作 }} 实例如下: struct TimesTable { let multiplier: Int subscript(index: Int) - Int { return multiplier * index }}let threeTime

下标脚本语法


subscript(index: Int) -> Int {
    get {
      // 返回与入参匹配的Int类型的值
    }

    set(newValue) {
      // 执行赋值操作
    }
}


实例如下:

struct TimesTable {
    let multiplier: Int
    subscript(index: Int) -> Int {
        return multiplier * index
    }
}
let threeTimesTable = TimesTable(multiplier: 3)
print("3的6倍是(threeTimesTable[6])")
// 输出 "3的6倍是18"



下标脚本选项


可以定义多个参数的形式
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,"Index out of range")
            grid[(row * columns) + column] = newValue
        }
    }
}
var matrix = Matrix(rows: 2,columns: 2)

matrix[0,1] = 1.5
matrix[1,0] = 3.2

let someValue = matrix[2,2]
// 断言将会触发,因为 [2,2] 已经超过了matrix的最大长度

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读