下标脚本(Subscripts)
下标脚本可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问集合(collection),列表(list)或序列(sequence的快捷方式,使用下标脚本的索引设置和获取值,不需要再调用实例的特定的赋值和访问方法。举例来说,用下标脚本访问一个数组(Array)实例中的元素可以这样写
someArray[index]
,访问字典(Dictionary)实例中的元素可以这样写someDictionary[key]
。
下标脚本语法
subscript(index: Int) -> Int {
get {
// 返回与入参匹配的Int类型的值
}
set(newValue) {
// 执行赋值操作
}
}
struct Matix {
var arrList = [Int]();
init(arrList: [Int]){
self.arrList = arrList;
}
func indexValidRow(index: Int) ->Bool{
return index < arrList.count;
}
subscript(index: Int) ->Int{
get {
assert(indexValidRow(index),"Index out of range");
return arrList[index];
}
set {
assert(indexValidRow(index),"Index out of range");
arrList[index] = newValue;
}
}
}