美文网首页
swift-下标

swift-下标

作者: Zz橙淞 | 来源:发表于2017-04-10 18:55 被阅读0次
  //下标
    
    //下标语法
    //下标允许你通过在实例名称后面的方括号中传入一个或者多个索引值来对实例进行存取。语法类似于实例方法语 法和计算型属性语法的混合。与定义实例方法类似,定义下标使用 subscript 关键字,指定一个或多个输入参数 和返回类型;与实例方法不同的是,下标可以设定为读写或只读。这种行为由 getter 和 setter 实现,有点类 似计算型属性:
    
//        subscript(index: NSInteger) -> NSInteger {
//        
//            get{
//            
//                //返回一个适当的nsinteger类型的值
//            }
//            set(newValue){
//                //执行适当的赋值操作
//            }
//        }
    
    
    //如同只读计算型属性,可以省略只读下标的 get 关键字:
//        subscript(index: Int) -> Int {
//            // 返回一个适当的 Int 类型的值
//        }
    
    struct TimesTable {
    
        let multiplier: NSInteger
        subscript(index: NSInteger) -> NSInteger {
        
            return multiplier * index
        }
    }
    let threeTimesTable = TimesTable(multiplier:3)
    print("six times three is \(threeTimesTable[6])")
    
    //下标用法
    var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
    numberOfLegs["bird"] = 2
    
    
    //下表选项
    struct Matrix {
        let rows: Int, columns: Int
        var grid: [Double]
        init(rows: Int, columns: Int) {
            self.rows = rows
            self.columns = columns
            grid = Array(repeating: 0.0, count: rows * columns)
        }
        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:row, column: column), "Index out of range")
                return grid[(row * columns) + column]
            }
            set {
                assert(indexIsValidForRow(row:row, column: column), "Index out of range")
                grid[(row * columns) + column] = newValue
            }
        }
    }
    
    
    var matrix = Matrix(rows: 2, columns: 2)
    
    print(matrix)

相关文章

  • Swift-下标

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

  • swift-下标

  • Swift-下标(Subscripts)

    类,结构和枚举可以定义下标,它们是访问集合,列表或序列的成员元素的快捷方式。 您可以使用下标来按索引设置和检索值,...

  • Swift-下标(subscript)

      使用subscript可以给任意类型(枚举、结构体、类)增加下标功能,有些地方也翻译为:下标脚本。subscr...

  • Swift-下标(subscript)

    下标(subscript) 使用subscript可以给任意类型(枚举、结构体、类)增加下标功能 subscrip...

  • swift-类属性

    了解属性之前,需要先了解前面的swift-类结构内容 - swift-类结构源码探寻[https://www.ji...

  • Swift4.0 --- 第一节:变量和常量

    // // ViewControllerOne.swift // Swift-(1) // // Created ...

  • Swift4.0 --- 可选项

    // // ViewControllerTwo.swift // Swift-(1) // // Created ...

  • Swift4.0 --- 可选项的判断

    // // ViewControllerFour.swift // Swift-(1) // // Created...

  • Swift4.0 --- 逻辑分支

    // // ViewControllerThree.swift // Swift-(1) // // Create...

网友评论

      本文标题:swift-下标

      本文链接:https://www.haomeiwen.com/subject/jnteattx.html