Subscripts
来源:互联网 发布:帝王网络dkfirst 编辑:程序博客网 时间:2024/06/02 02:34
Classes, structures, and enumerations can define subscripts, which are shortcuts for accessing the member elements of a collection, list or sequence. 类、结构体、枚举都可以定义脚注(不知道这里应该怎么翻译scripts, 姑且当做是脚注吧。举个例子来说脚注也就是someArray[3]中的中括号和里面的数字3)
You can define multiple subscripts for a single type, and the appropriate subscript overload to use is selected based on the type of index value you pass to the subscript. 也就是说脚注可以重载,编译器会根据传入的参数不同选择不同的脚注
// basic syntax 基本语法subscript(intdex: Int) -> Int { get { // return an appropriate subscript value here } set(newValue) { // perform a suitable setting action here }}// as with read-only computed properties, you can drop the get keyword for read-pnly subscripts// 为了实现只读subscript,你可以省去get参数struct TimesTable { let multiplier: Int subscript(index: Int) -> Int { return multiplier * index }}
Subscript Options
Subscripts can take any number of input parameters, and these input parameters can be of any type. subscript可以有任何数量的参数,并且参数可以是任何类型
就像下面的Matrix定义,我们可以很轻松的写出
var m = Matrix(rows:3, columns:3)
let p = m[1,2]
m[2,2] = p之类的语句
struct Matrix { let rows: Int, columns: Int var grid: [Double] init(rows: Int, columns: Int) { self.rows = rows self.columns = columns grid = Array(count: rows*columns, repeatedValue: 0.0) } func indexIsValidForRow(row: Int, column: Int) -> Bool { return row>=0 && row<self.rows && column>=0 && column<self.columns } subscript(row: Int, column: Int) -> Double { get { assert(indexIsValidForRow(row, column: column), "Index out of range") return grid[(row*columns) + column] } set { assert(indexIsValidForRow(row, column: column), "Index out of range") grid[(row*columns) + column] = newValue } }}
0 0
- Subscripts
- swift2 Subscripts
- Swift下标(Subscripts)
- Swift 学校笔记---Subscripts
- Letex 学习: Subscripts and Superscripts
- Part 2:(Methods,Subscripts,Inheritance)
- Swift 下标脚本(Subscripts)
- sub2ind - Convert subscripts to linear indices
- 12.Swift-附属脚本(Subscripts)
- 对照Java学习Swift--下标(Subscripts)
- 10.6 Swift中subscripts基本语法
- 10.7 Swift中subscripts具体实现
- 二十七 Swift3.0之 下标(subscripts)
- Swift 易忽略的笔记 6):Methods & Subscripts
- Swift学习笔记12——下标(Subscripts)
- 简读The Swift Programming Language官方文档--下标脚本 Subscripts
- Swift学习笔记(15)--下标脚本(Subscripts)
- 10.8 Swift中subscripts多索引的实现
- android权限大全
- 老外谈设计: 2015年WEB设计趋势
- MyEclipse中MySQL的使用方法
- ORACLE-TNS协议分析
- 从零开始学C++之IO流类库(二):文件流(fstream, ifstream, ofstream)的打开关闭、流状态
- Subscripts
- tomcat虚拟目录配置
- Druid初体验
- JS字符串处理
- 对话硅谷高科技创业公司
- web.xml
- eclipse无法启动
- Scrum
- android 网络通信