类、结构体和枚举都可以定义下标,下标是用于访问集合、列表或序列的成员元素的快捷方式。可以使用下标,设置和获取值,而不用单独的调用对应的存取。例如,用下标访问一个Array实例中的元素可以写作someArray[index],访问Dictionary实例中的元素可以写作someDictionary[key]。
使用subscript
关键字定义下标,指定一个或多个输入参数和返回类型。与实例方法不同,下标可以是读写或只读。此行为由getter和setter以与计算属性相同的方式传递
subscript(index: Int) -> Int {
get {
// 返回一个适当的 Int 类型的值
}
set(newValue) {
// 执行适当的赋值操作
}
}
如果是只读属性,与只读计算属性一样,可以通过删除get关键字及其大括号来简化只读下标的声明
subscript(index: Int) -> Int {
// return an appropriate subscript value here
}
比如给一个类添加下标
class Student: NSObject {
var name = ""
var age = 10
var height = 170
subscript(index:Int) -> AnyObject{
switch index{
case 0:
return name as AnyObject
case 1:
return age as AnyObject
case 2:
return height as AnyObject
default:
return name as AnyObject
}
}
}
//调用
let stu = Student()
stu.name = "海王"
print(stu[0]) //海王
print(stu[1]) //10
print(stu[2]) //170