本文主要是介绍Swift3.0 - 下标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Swift3.0 - 真的很简单
Swift3.0 - 数据类型
Swift3.0 - Array
Swift3.0 - 字典
Swift3.0 - 可选值
Swift3.0 - 集合
Swift3.0 - 流控制
Swift3.0 - 对象和类
Swift3.0 - 属性
Swift3.0 - 函数和闭包
Swift3.0 - 初始化和释放
Swift3.0 - 协议protocol
Swift3.0 - 类和结构体的区别
Swift3.0 - 枚举
Swift3.0 - 扩展
Swift3.0 - 下标
Swift3.0 - 泛型
Swift3.0 - 异常错误
Swift3.0 - 断言
Swift3.0 - 自动引用计数(strong,weak,unowned)
Swift3.0 - 检测API
Swift3.0 - 对象的标识
Swift3.0 - 注释
Swift3.0 - 元类型
Swift3.0 - 空间命名
Swift3.0 - 对象判等
Swift3.0 - 探究Self的用途
Swift3.0 - 类簇
Swift3.0 - 动态调用对象(实例)方法
Swift3.0 - 文本输出
Swift3.0 - 黑魔法swizzle
Swift3.0 - 镜像
Swift3.0 - 遇到的坑
- 定义
subscript(index: Int) -> Int {get {}set(newValue) { }
}
- 应用
a.需求: 获取字符串第2个字符
一般写法:
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: "你好吗")
我们扩展下表写法
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] // 是不是简便很多
b.需求: .截取范围内的字符串
extension String{subscript(begin:Int,end:Int) -> String{let range = self.index(startIndex, offsetBy: begin)...self.index(startIndex, offsetBy: end)return self[range] }
}
// 调用
let subString = string[2,4]
更优雅的写法
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.下标的参数不能是inout 修饰的类型
2.类或者结构体可以提供任意多个下标实现
3.下标也是可以在枚举中使用的
这篇关于Swift3.0 - 下标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!