swift2.0 学习笔记nine
2016-05-14 17:29
519 查看
struct TimesTable {
let mult :Int
subscript(index:Int)->Int{
return mult * index
}
}
struct Matrix {
let rows:Int, colums:Int
var grid : [Double]
init(rows:Int,colums:Int){
self.rows=rows;
self.colums=colums;
grid=Array(count: rows * colums, repeatedValue: 0.0)
}
func indexIsValidForRow(row :Int,column:Int)->Bool{
return row >= 0 && row <
rows && column >= 0 && column < colums
}
subscript(row:Int, colum:Int)->Double{
get {
assert(indexIsValidForRow(row, column: colum),
"Index out of range")
return
grid[(row * colums)+colum]
}
set{
assert(indexIsValidForRow(row, column: colum),
"Index out of range")
grid[(row *
colums)+colum]=newValue
}
}
}
class ViewController:
UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//下标脚本
//下标脚本可以定义在类、结构体和枚举这些目标中,可以认为是访问集合列表或序列的快捷方式,使用下脚标的索引设置和获取值,不需要再调用实例的特定的赋值和访问方法。比如访问字典实例中的元素可以是someDic[key]
//与定义实例方法类似,定义下标脚本使用subscript关键字,显示声明入参(一个或多个)和返回类型,与实例方法不同的是下标脚本可以设定为读写或只读。
let threetimesTable=TimesTable(mult: 3);
print("3的6倍是\(threetimesTable
[6])")//3的6倍是18
//下标脚本用法
//根据使用场景的不同下标脚本也具有不同的含义。通常下标脚本是用来访问集合、列表或序列中元素的快捷键方式。可以在自己特定的类或结构体中自由的实现下标脚本本来提供合适的功能
var numberOfLegs = ["spider": 8,
"ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
//下标脚本允许任意数量的入参索引,并且每个入参类型也没有限制。下标脚本的返回值也可以是任何类型。下标
脚本可以使用变量参数和可变参数,但使用写入读出(in-out)参数或给参数设置默认值都是不允许的。
var matrix =
Matrix(rows: 2, colums: 2)
print(matrix.grid);//[0.0, 0.0, 0.0, 0.0]
matrix[0,1]=1.5
matrix[1,0]=3.5
print(matrix.grid);//[0.0, 1.5, 3.5, 0.0]
}
}
let mult :Int
subscript(index:Int)->Int{
return mult * index
}
}
struct Matrix {
let rows:Int, colums:Int
var grid : [Double]
init(rows:Int,colums:Int){
self.rows=rows;
self.colums=colums;
grid=Array(count: rows * colums, repeatedValue: 0.0)
}
func indexIsValidForRow(row :Int,column:Int)->Bool{
return row >= 0 && row <
rows && column >= 0 && column < colums
}
subscript(row:Int, colum:Int)->Double{
get {
assert(indexIsValidForRow(row, column: colum),
"Index out of range")
return
grid[(row * colums)+colum]
}
set{
assert(indexIsValidForRow(row, column: colum),
"Index out of range")
grid[(row *
colums)+colum]=newValue
}
}
}
class ViewController:
UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//下标脚本
//下标脚本可以定义在类、结构体和枚举这些目标中,可以认为是访问集合列表或序列的快捷方式,使用下脚标的索引设置和获取值,不需要再调用实例的特定的赋值和访问方法。比如访问字典实例中的元素可以是someDic[key]
//与定义实例方法类似,定义下标脚本使用subscript关键字,显示声明入参(一个或多个)和返回类型,与实例方法不同的是下标脚本可以设定为读写或只读。
let threetimesTable=TimesTable(mult: 3);
print("3的6倍是\(threetimesTable
[6])")//3的6倍是18
//下标脚本用法
//根据使用场景的不同下标脚本也具有不同的含义。通常下标脚本是用来访问集合、列表或序列中元素的快捷键方式。可以在自己特定的类或结构体中自由的实现下标脚本本来提供合适的功能
var numberOfLegs = ["spider": 8,
"ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
//下标脚本允许任意数量的入参索引,并且每个入参类型也没有限制。下标脚本的返回值也可以是任何类型。下标
脚本可以使用变量参数和可变参数,但使用写入读出(in-out)参数或给参数设置默认值都是不允许的。
var matrix =
Matrix(rows: 2, colums: 2)
print(matrix.grid);//[0.0, 0.0, 0.0, 0.0]
matrix[0,1]=1.5
matrix[1,0]=3.5
print(matrix.grid);//[0.0, 1.5, 3.5, 0.0]
}
}
相关文章推荐
- swift之CGRect、CGSize和CGPoint
- 关于C、OC、C++、OC++、Swift的一些常识
- NSURLSession 下载文件 --Swift
- OC与swift混编
- OC工程调用Swift方法
- Swift工程使用OC类
- 对照Java学习Swift--扩展(Extensions)
- 去掉tabbar上方的黑线
- Swift讲解专题七——函数
- iOS 通用缓存:HanekeSwift
- swift 之 UITableView
- swift自定义cell的坑
- How Do I Declare a Closure in Swift?
- Swift UITableView 的简单使用
- How do I write things in Swift?
- Swift关闭键盘的两种方式
- 【Swift】三种多线程处理方式
- Swift 学习笔记 (三) 之循环引用浅析
- Swift学习笔记(Page.1)
- 关于OC和Swift混编