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