Swift 第九课 附属脚本

附 属 脚 本可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问对象、集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法。 举例来说,用附属脚本访问一个数组(Array)实例中的元素可以这样写 someArray[index] ,访问字典(Dictionary)实例中的元素可以这样写 someDictionary[key]。对于同一个目标可以定义多个附属脚本,通过索引值类型的不同来进行重载,而且索引值的个数可以是多个。

附属脚本语法

附属脚本允许你通过在实例后面的方括号中传入一个或者多 个的索引 值来对实例 进 行 访 问 和赋值。语法类似于实例方法和计算型属性的混合。与定义实例方法类似,定义附属脚本使 用 subscript 关键字,显式声明入参(一个或多个)和返回类型。与实例方法不同的是附属 脚本可以设定为读写或只读。
subscript(index: Int) -> Int{
get{
//返回与入参匹配的Int类型的值
}

set(newValue){ //newValue 的类型必须和附属脚本定义的返回类型相同。与计算型属性相同的是 set 的入参 声明 newValue 就算不写,在 set 代码块中依然可以使用默认的 newValue 这个变量来访问 新赋的值。
//执行赋值操作
}
}

struct TimesTable {
let multiplier : Int
subscript(index: Int) -> Int {
return multiplier * index
}
}
let threeTimesTable = TimesTable(multiplier: 3 )

println(“3 的 6 倍是(threeTimesTable[6])”)

let rows: Int, columns: Int
var grid: Double[]
subscript(row: Int, column: Int) -> Double {
get {
assert(indexIsValidForRow(row, column: column), “Index out
of range”)
return grid[(row * columns) + column]
}

set {
assert(indexIsValidForRow(row, column: column), “Index out
of range”)
grid[(row * columns) + columns] = newValue
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值