发布于 2015-06-14 01:48:43 | 142 次阅读 | 评论: 0 | 来源: 网络整理

下标脚本声明

附属脚本用于向特定类型添加附属脚本支持,通常为访问集合,列表和序列的元素时提供语法便利。附属脚本声明使用关键字subscript,声明形式如下:


subscript (parameter) -> (return type){
get{
statements
}
set(setter name){
statements
}
}
 

附属脚本声明只能在类,结构体,枚举,扩展和协议声明的上下文进行声明。

变量(parameters)指定一个或多个用于在相关类型的下标脚本中访问元素的索引(例如,表达式object[i]中的i)。尽管用于元素访问的索引可以是任意类型的,但是每个变量必须包含一个用于指定每种索引类型的类型标注。返回类型(return type)指定被访问的元素的类型。

和 计算性属性一样,下标脚本声明支持对访问元素的读写操作。getter用于读取值,setter用于写入值。setter子句是可选的,当仅需要一个 getter子句时,可以将二者都忽略且直接返回请求的值即可。也就是说,如果使用了setter子句,就必须使用getter子句。

setter的名字和封闭的括号是可选的。如果使用了setter名称,它会被当做传给setter的变量的名称。如果不使用setter名称,那么传给setter的变量的名称默认是value。setter名称的类型必须与返回类型(return type)的类型相同。

可以在下标脚本声明的类型中,可以重载下标脚本,只要变量(parameters)返回类型(return type)与先前的不同即可。此时,必须使用override关键字声明那个被覆盖的下标脚本。(注:好乱啊!到底是重载还是覆盖?!)

同样可以在协议声明的上下文中声明下标脚本,Protocol Subscript Declaration中有所描述。

更多关于下标脚本和下标脚本声明的例子,请参考Subscripts


附属脚本声明语法
附属脚本声明 → 附属脚本头(Head) 附属脚本结果(Result) 代码块
附属脚本声明 → 附属脚本头(Head) 附属脚本结果(Result) getter-setter块
附属脚本声明 → 附属脚本头(Head) 附属脚本结果(Result) getter-setter关键字(Keyword)块
附属脚本头(Head) → 特性(Attributes)列表 可选 subscript 参数子句
附属脚本结果(Result) → -> 特性(Attributes)列表 可选 类型
 

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务