Swift 子脚本(十一)

Swift 子脚本(十一),第1张

概述子脚本 (Subscripts) 定义在类、结构体和枚举中,表示访问对象、集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法 1.语法 子脚本允许通过在实例后面的方括号传入一个或多个索引值来对实例进行访问和 *** 作,使用 subscript 关键字,显示声明传入的参数和返回的类型 [objc]  view plain copy //newValue的类型必须和脚本定义的返回类型相同   su 子脚本 (Subscripts)

定义在类、结构体和枚举中,表示访问对象、集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法

1.语法 子脚本允许通过在实例后面的方括号传入一个或多个索引值来对实例进行访问和 *** 作,使用 subscript 关键字,显示声明传入的参数和返回的类型
[objc] view plain copy //newValue的类型必须和脚本定义的返回类型相同 subscript(index:Int)->Int{ get{ //returnanappropriatesubscriptvaluehere } set(newValue){ //performasuitablesettingactionhere } //如果是只读属性,就是只有getter方法,那原get代码块可直接写在subscript中 subscript(index:Int)->Int{ //以下例子定义一个结构体,用来展示传入整数的n倍 structTimestable{ letmultiplIEr:Int returnmultiplIEr*index letthreeTimestable=Timestable(multiplIEr:3) println("sixtimesthreeis\(threeTimestable[6])") //prints"sixtimesthreeis18" 2.用法 通常用来访问集合,列表或序列中的元素
varnumberOfLegs=["spIDer":8,"ant":6,"cat":4] numberOfLegs["bird"]=2 3.选项 子脚本允许任意数量的参数,并且参数类型没有限制,一个类或结构体可使用多个子脚本的实现,根据传入的参数进行区分,称为子脚本的重载
structMatrix{ rows:Int,columns:Int vargrID:Double[] init(rows:Int,columns:Int){ self.rows=rows self.columns=columns grID=Array(count:rows*columns,0); background-color:inherit">repeatedValue:0.0) funcindexIsValIDForRow(row:Int,0); background-color:inherit">column:Int)->Bool{ returnrow>=0&&row<rows&&column>=0&&column<columns subscript(row:Int,0); background-color:inherit">column:Int)->Double{ assert(indexIsValIDForRow(row,0); background-color:inherit">column:column),"Indexoutofrange") returngrID[(row*columns)+column] set{ grID[(column]=newValue varmatrix=Matrix(rows:2,0); background-color:inherit">columns:2) matrix[0,0); background-color:inherit">1]=1.5 matrix[1,0); background-color:inherit">0]=3.2 letsomeValue=matrix[2,0); background-color:inherit">2] //thistriggersanassert,because[2,2]isoutsIDeofthematrixbounds 总结

以上是内存溢出为你收集整理的Swift 子脚本(十一)全部内容,希望文章能够帮你解决Swift 子脚本(十一)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1081810.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存