subscript 提供一种类似 Array 或 Dictionary 通过下标来访问对象的方式。例如:someArray[index] 、someDictionary[key]
subscript 可以重载,就是一个类可以定义多个下标脚本,可以设置为只读和读写。
语法:
subscript(index: Int) -> Int {
get {
// return an appropriate subscript value here
}
set(newValue) {
// perform a suitable setting action here
}
}
给 String 添加下标,实现便捷截取:
subscript (r: Range<Int>) -> String {
get {
let startIndex = self.index(self.startIndex, offsetBy: r.lowerBound)
let endIndex = self.index(self.startIndex, offsetBy: r.upperBound)
return self[startIndex..<endIndex]
}
}
使用范例:
let str = "abcdefg"
let subStr = str[2..<5]
print(subStr)
//打印:cde
更多实例请查看官网:subscript