您的位置:首页 > 移动开发 > Swift

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]

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: