Swift 下標(biāo)

類(lèi)、結(jié)構(gòu)體、枚舉可以定義下標(biāo)

import UIKit

// 只讀下標(biāo)
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 如下


只讀下標(biāo).png

下標(biāo)實(shí)例

// 下標(biāo)實(shí)例
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 如下


下標(biāo)實(shí)例.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 下標(biāo)腳本 可以定義在類(lèi)(Class)、結(jié)構(gòu)體(structure)和枚舉(enumeration)這些目標(biāo)中,可以...
    零度_不結(jié)冰閱讀 318評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 定義下標(biāo)使用subscript關(guān)鍵字, 形式如下: 只讀下標(biāo)的實(shí)現(xiàn) 例: 在上例中,創(chuàng)建了一個(gè)TimesTa...
    Limmy0214閱讀 865評(píng)論 0 0
  • 下標(biāo)腳本可以定義在類(lèi)、結(jié)構(gòu)體和枚舉中,即是訪(fǎng)問(wèn)集合、列表、學(xué)列的快捷方式,使用下標(biāo)腳本的索引設(shè)置和獲取值,不需要再...
    EndEvent閱讀 394評(píng)論 0 3
  • 女兒,節(jié)日里,我們開(kāi)車(chē)去旅游,你在學(xué)校補(bǔ)課,媽媽想把看到的一切美景都告訴你。 大橋拐彎的地方,你爸爸說(shuō)這個(gè)地方的別...
    夏花靜秋閱讀 655評(píng)論 0 4

友情鏈接更多精彩內(nèi)容