Swift3.0 - 真的很簡(jiǎn)單
Swift3.0 - 數(shù)據(jù)類型
Swift3.0 - Array
Swift3.0 - 字典
Swift3.0 - 可選值
Swift3.0 - 集合
Swift3.0 - 流控制
Swift3.0 - 對(duì)象和類
Swift3.0 - 屬性
Swift3.0 - 函數(shù)和閉包
Swift3.0 - 初始化和釋放
Swift3.0 - 協(xié)議protocol
Swift3.0 - 類和結(jié)構(gòu)體的區(qū)別
Swift3.0 - 枚舉
Swift3.0 - 擴(kuò)展
Swift3.0 - 下標(biāo)
Swift3.0 - 泛型
Swift3.0 - 異常錯(cuò)誤
Swift3.0 - 斷言
Swift3.0 - 自動(dòng)引用計(jì)數(shù)(strong,weak,unowned)
Swift3.0 - 檢測(cè)API
Swift3.0 - 對(duì)象的標(biāo)識(shí)
Swift3.0 - 注釋
Swift3.0 - 元類型
Swift3.0 - 空間命名
Swift3.0 - 對(duì)象判等
Swift3.0 - 探究Self的用途
Swift3.0 - 類簇
Swift3.0 - 動(dòng)態(tài)調(diào)用對(duì)象(實(shí)例)方法
Swift3.0 - 文本輸出
Swift3.0 - 黑魔法swizzle
Swift3.0 - 鏡像
Swift3.0 - 遇到的坑
- 定義
subscript(index: Int) -> Int {
get {
}
set(newValue) {
}
}
- 應(yīng)用
a.需求: 獲取字符串第2個(gè)字符
一般寫法:
func getCharacterByIndex(n:Int,string:String)-> Character?{
let index = string.characters.index(string.characters.startIndex, offsetBy:n)
return string.characters[index]
}
let c = getCharacterByIndex(n: 2, string: "你好嗎")
我們擴(kuò)展下表寫法
let string = "你好,我是酷走天涯"
extension String{
subscript(n:Int)->Character{
let index = string.characters.index(string.characters.startIndex, offsetBy:n)
return string.characters[index]
}
}
let c = string[1] // 是不是簡(jiǎn)便很多
b.需求: .截取范圍內(nèi)的字符串
extension String{
subscript(begin:Int,end:Int) -> String{
let range = self.index(startIndex, offsetBy: begin)...self.index(startIndex, offsetBy: end)
return self[range]
}
}
// 調(diào)用
let subString = string[2,4]
更優(yōu)雅的寫法
extension String{
subscript(range:ClosedRange<Int>)->String{
let range = self.index(startIndex, offsetBy: range.lowerBound )...self.index(startIndex, offsetBy: range.upperBound)
return self[range]
}
}
let subString = string[1...5]
- 注意
1.下標(biāo)的參數(shù)不能是inout 修飾的類型
2.類或者結(jié)構(gòu)體可以提供任意多個(gè)下標(biāo)實(shí)現(xiàn)
3.下標(biāo)也是可以在枚舉中使用的