《从零开始学Swift》学习笔记(Day 46)——下标重写
2015-12-09 10:26
525 查看
原创文章,欢迎转载。转载请注明:关东升的博客
下标是一种特殊属性。子类属性重写是重写属性的getter和setter访问器,对下标的重写也是重写下标的getter和setter访问器。
下面看一个示例:
其中super.grid[(row * columns) + col]语句中使用super调用父类的grid属性。
其中super.grid[(row * columns) + col] = newValue * newValue语句是给父类的grid属性赋值。
欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php
下标是一种特殊属性。子类属性重写是重写属性的getter和setter访问器,对下标的重写也是重写下标的getter和setter访问器。
下面看一个示例:
class DoubleDimensionalArray { let rows: Int, columns: Int var grid: [Int] init(rows: Int, columns: Int) { self.rows = rows self.columns = columns grid = Array(count: rows * columns, repeatedValue: 0) } subscript(row: Int, col: Int) -> Int { //定义下标 get { return grid[(row * columns) + col] } set { grid[(row * columns) + col] = newValue } } //定义下标 } class SquareMatrix: DoubleDimensionalArray { override subscript(row: Int, col: Int) -> Int { //重写父类下标 get { return super.grid[(row * columns) + col] } set { super.grid[(row * columns) + col] = newValue * newValue } } } var ary2 = SquareMatrix(rows: 5, columns: 5) for var i = 0; i < 5; i++ { for var j = 0; j < 5; j++ { ary2[i,j] = i + j }} for var i = 0; i < 5; i++ { for var j = 0; j < 5; j++ { print("\t\t \(ary2[i,j])") } print("\n") }
其中super.grid[(row * columns) + col]语句中使用super调用父类的grid属性。
其中super.grid[(row * columns) + col] = newValue * newValue语句是给父类的grid属性赋值。
欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php
相关文章推荐
- 《从零开始学Swift》学习笔记(Day 46)——下标重写
- 新书《iOS8 Swift编程指南》货架
- NSDate教程(Swift版)
- mutating的使用(swift2.0)
- as在swift中的应用
- swift 学习之UISegmentedControl
- 一步一步学swift之:自己写Api接口-PHP
- 如何创建swift工程
- swift 创建UICollectionView
- swift -懒加载创建view
- swift实际使用中遇到的问题及解决(2)
- Swift学习笔记 -- 流程控制
- swift UITabelVIew - 纯代码自定义tabelViewCell
- swift编码出现Call can throw, but it is not marked with 'try' and the error is not handled错误的解决
- Swift学习之路 -- 枚举和结构体
- 【菜鸟初学Swift】IOS平台常用传感器的使用方式
- Swift!代码实现UI基础控件
- Swift----单列的正确编写方式
- swift 学习之 UIAlertViewController
- 如何使用Instruments诊断App(Swift版):起步