在Swift中,类、结构体和枚举都是支持下标语法的。
什么是下标语法?使用过数组、字典的朋友都见过array[index]。通过这样的方式可以设置数据和取数,会很方便也很简洁。你可以给一个类定义多个下标,也可以在一个下标中定义一个或多个参数。
下标的关键字是subscript,常用格式如下:
~~~
subscript(index: Int) -> Int {
get {
// return an appropriate subscript value here
}
set(newValue) {
// perform a suitable setting action here
}
}
~~~
下面我们以数组为例,给大家介绍下标的创建和使用。
~~~
/// array结构体
struct TestArray {
/// 内部数组
var array = Array<Int>()
// MARK: 下标使用
subscript(index: Int) -> Int {
get {
assert(index < array.count, "下标越界")
return array[index]
}
set {
while array.count <= index {
array.append(0)
}
array[index] = newValue
}
}
}
var array = TestArray()
array[3] = 4; // 通过下标设置值
print("\(array[3])") // 4
print("\(array[4])") // 程序停止
~~~
### 其他
### 参考资料
[The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html)
### 文档修改记录
| 时间 | 描述 |
|-----|-----|
| 2015-10-30 | 根据 [The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html)中的Subscripts总结 |
版权所有:[http://blog.csdn.net/y550918116j](http://blog.csdn.net/y550918116j)
- 前言
- Swift函数
- Swift闭包(Closures)
- Swift枚举(Enumerations)
- Swift类和结构体(Classes and Structures)
- Swift属性(Properties)
- Swift方法(Methods)
- Swift下标(Subscripts)
- Swift继承(Inheritance)
- Swift初始化(Initialization)
- Swift销毁(Deinitialization)
- Swift可选链(Optional Chaining)
- Swift错误处理(Error Handling)
- Swift类型选择(Type Casting)
- Swift协议(Protocols)
- Swift访问控制(Access Control)
- Swift高级运算符(Advanced Operators)