下标
发布时间:2020-12-14 07:18:30 所属栏目:百科 来源:网络整理
导读:说起下标的作用对于数组和字典来说并不用陌生,但在Swift中所有的类型都支持下标。用下标可以很方便的访问对象的具体值。 语法格式 使用subscript关键字定义下标subscript(形参列表)-下标返回值类型{ get{ //getter部分执行体,该部分必须有返回值}[set(形参
语法格式使用subscript关键字定义下标 subscript(形参列表)->下标返回值类型 { get{ //getter部分执行体,该部分必须有返回值 } [set(形参名) { //setter部分执行体,该部分一定不能有返回值 }] } set部分:set部分可定义一段执行性代码,这段代码用于对下标赋值。Swift允许定义只读下标,因此可以省略set部分,set部分形参代表了通过下标赋值时传入的新值,当然可以省略set部分形参,会提供隐式的形参名:newValue。get部分:这段代码将返回下标的值。注意:定义下标时只能省略set部分,不能省略get部分。Swift只支持只读下标,并不支持“只写下标” struct Rect { var x:Int var y:Int var width:Int var height:Int subscript(idx:Int )->Int { get { switch(idx) { case 0: return self.x case 1: return self.y case 2: return self.width case 3: return self.height default: print("不支持") return 0 } } set{ switch(idx) { case 0: self.x=newValue case 1: self.y=newValue case 2: self.width=newValue case 3: self.height=newValue default: print("不支持该索引值") } } } } } var rect=Rect(x:20,y:12,width:200,height:300) rect[0]=40 rect[1]=67 print("(rect[0],rect[1])") 下标重载一个类型可以包括多个下标,只要多个下标的形参列表不同(形参数量或者形参类型不同)或者返回值类型不同即可,这种功能成为下标重载。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |