Swift 下标

类、结构体、枚举可以定义下标

import UIKit

// 只读下标
struct TimesTable {
    let multiplier: Int
    subscript(index: Int) -> Int {
        return multiplier * index
    }
}

let threeTimesTable = TimesTable(multiplier: 3)
print("six times three is \(threeTimesTable[6])")

console log 如下


只读下标.png

下标实例

// 下标实例
struct Matrix {
    let rows:Int, columns: Int
    var grid: [Int]
    init(rows: Int, columns: Int) {
        self.rows = rows
        self.columns = columns
        grid = Array(count: rows * columns, repeatedValue: 0)
    }
    
    func indexIsValid(row: Int, column: Int) -> Bool {
        return row >= 0 && row < self.rows && column >= 0 && column < self.columns
    }
    
    subscript(row: Int, column: Int) -> Int {
        get {
            assert(indexIsValid(row, column: column), "Index out of range")
            return grid[row * columns + column]
        }
        
        set {
            assert(indexIsValid(row, column: column), "Index out of range")
            grid[row * columns + column] = newValue
        }
    }
}

var matrix = Matrix(rows: 3, columns: 3)

matrix[0, 0] = 1992
matrix[1, 1] = 85
matrix[2, 2] = 520

let someValue = matrix[0, 2]
print("第一行第三列值是\(someValue)")

print("三行三列值")
var tempIndex = 0
for indexValue in matrix.grid {
    tempIndex += 1
    print("\(indexValue)", terminator: "")
    if tempIndex % 3 == 0 {
        print("")
    } else {
        print(",", terminator: "")
    }
}

console log 如下


下标实例.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 下标脚本 可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中,可以...
    零度_不结冰阅读 1,886评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,873评论 19 139
  • 定义下标使用subscript关键字, 形式如下: 只读下标的实现 例: 在上例中,创建了一个TimesTa...
    Limmy0214阅读 4,221评论 0 0
  • 下标脚本可以定义在类、结构体和枚举中,即是访问集合、列表、学列的快捷方式,使用下标脚本的索引设置和获取值,不需要再...
    EndEvent阅读 2,790评论 0 3
  • 女儿,节日里,我们开车去旅游,你在学校补课,妈妈想把看到的一切美景都告诉你。 大桥拐弯的地方,你爸爸说这个地方的别...
    夏花静秋阅读 3,707评论 0 4

友情链接更多精彩内容