转载

Swift Subscripts 笔记

0. Classes、 structures 和 enumerations 都可以通过定义下标的方式来访问成员元素,一个类型可以定义 多个 不同的下标(subscript overloading),也可以定义 多维度 的下标

subscriptInstance[param]   subscriptInstance[param1, param2] // 多参数   subscriptInstance[param][param] // 多维度

1. 定义下标和定义成员函数的语法相似,不过需要只 subscript 关键字,可以接受一个或多个参数,下标的函数体又和定义计算型属性语法相似

subscript(index: Int) -> Int {       get {         // return an appropriate subscript value here     }     set(newValue) {         // perform a suitable setting action here     } }  // 只读的可以直接返回 subscript(index: Int) -> Int {       // return an appropriate subscript value here }

2. 下标的参数还可以是可变参数(variadic parameters),但不能是 inout 参数或默认参数

3. 多维度的下标定义就是返回的类型也支持下标操作

4. 下标既可以是数组的 index,字典的 key,还可以是其他,它的含义就看你怎么使用它

P.S. 一个类型定义多个不同的下标就是一般所说的下标重载(subscript overloading)

原文  http://c0ming.me/swift-note-subscripts/
正文到此结束
Loading...