Swift自定義類使用下標(biāo)

數(shù)組和字典等集合類型,可以通過下標(biāo)的方式來快速獲取相對(duì)應(yīng)的值。在swift中,可以通過subscript來實(shí)現(xiàn)這個(gè)功能。

假設(shè)有一個(gè)學(xué)生類,有一個(gè)成員屬性names來記錄所有學(xué)生的姓名:

class Students {
    var names: [String] = {
        return ["Wangxiaole", "Guanyi", "Liuxiang"]
    }()
}

let students = Students()
let name = students.names[0]

那么在獲取數(shù)組中指定位置的元素,需要通過names來獲取元素。而使用subscript后:

extension Students {
    subscript(n: Int) -> String {
        return names[n]
    }
}

let name2 = students[0]

這樣就可以不通過訪問names來獲取指定的學(xué)生姓名??墒沁@樣只能用下標(biāo)來獲取元素,如果要設(shè)置則需要實(shí)現(xiàn)get和set方法:

extension Students {
    subscript(n: Int) -> String {
        get {
            return names[n]
        }
        set(name) {
            names[n] = name
        }
    }
}

let name3 = students[0]
students[0] = "XXXX"

這樣就可以將names直接通過下標(biāo)的方式來設(shè)置和獲取了。是不是感覺帥帥的。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,169評(píng)論 1 10
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 4,078評(píng)論 0 6
  • 阿寶和他爸爸一樣愛吃甘蔗,晚上看他奶奶在啃甘蔗就站他奶奶旁邊說要吃。他奶奶咬一口給他,他還嫌棄小??此职诌^來就趕...
    蝸牛慢吞吞簡(jiǎn)愛閱讀 214評(píng)論 0 0
  • 仲夏苦夜短,出門逛快閃。近期,生活中出現(xiàn)一種新型時(shí)尚的商業(yè)模式——快閃店,所謂快閃,就是指出現(xiàn)在繁華商業(yè)區(qū)無需久留...
    Eramus5閱讀 287評(píng)論 14 0
  • every()對(duì)數(shù)組中的每一項(xiàng)都運(yùn)行給定函數(shù),返回值:當(dāng)且僅當(dāng)全部true時(shí),才會(huì)返回true filter()對(duì)...
    c59ffede9db6閱讀 232評(píng)論 0 0

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