• 12.下标


      下标可以定义在类、结构体和枚举中,是访问集合、列表或序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需要再调用对应的存取方法。

      一个类型可以定义多个下标,通过不同索引类型进行重载。下标不限于一维,也可以定义具有多个入参的下标满足自定义类型的需求。

    1.下标语法(关键字:subscript)

    subscript(index: Int) -> Int {
        get {
            // 返回一个适当的 Int 类型的值
        }
        
        set(newValue) {
            // 执行适当的赋值操作
        }
    }
    
    //1.定义下标使用subscript关键字,指定一个或多个输入参数和返回类型;
    //2.newValue的类型和下标的返回类型相同。如同计算型属性,可以不指定 setter 的参数(newValue)。如果不指定参数,setter 会提供一个名为newValue的默认参数。
    //3.如同只读计算型属性,可以省略只读下标的get关键字;

    2.示例

    //下例定义了一个Matrix结构体,用于表示一个Double类型的二维矩阵。Matrix结构体的下标接受两个整型参数
    struct Matrix
    {
        let rows: Int;
        let 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) + column] = newValue;
            }
        };
    }
    
    var matrix = Matrix(rows: 2, columns: 2);  //grid = [0.0, 0.0,, 0.0, 0.0]
    matrix[0, 0] = 1;
    matrix[0, 1] = 2;
    matrix[1, 0] = 3;
    matrix[1, 1] = 4;
    
    //设置下标之后数组变成:
    /*
     [1, 2,
      3, 4]
     */
  • 相关阅读:
    CentOS 6.5系统使用yum方式安装LAMP环境
    省市区三级联动—PCASClass
    javascript进击(九)参考手册
    javascript进击(八)JSON
    javascript进击(七)Ajax
    javascript进击(六)Jquery
    javascript进击(五)JS对象
    javascript进击(四)HTML DOM
    javascript进击(三)简介
    javascript进击(一)简介
  • 原文地址:https://www.cnblogs.com/LeeGof/p/5680817.html
Copyright © 2020-2023  润新知