博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
下标的使用
阅读量:6114 次
发布时间:2019-06-21

本文共 1897 字,大约阅读时间需要 6 分钟。

类,结构和枚举类型都可以通过定义下标来访问一组或者一个序列中的成员元素。通过下标索引就可以方便地检索和设置相应的值,而不需要其他的额外操作。

比如你可以通过someArray[index]来访问数组中的元素,或者someDictionary[key]来对字典进行索引。

你可以为一个类型定义多个下标,以及适当的下标重载用来根据传递给下标的索引来设置相应的值。下标不仅可以定义为一维的,还可以根据需要定义为多维的,多个参数的。

下标可以让你通过实例名后加中括号内一个或多个数值的形式检索一个元素。语法和方法语法和属性语法类似,通过使用subscript关键定义,一个或多个输入参数以及一个返回值。

不同于实例方法的是,下标可以是可读写的或者只读的。这种行为通过一个getter和setter语句联通,就像是计算属性一样。

//: Playground - noun: a place where people can playimport UIKit/*下标:1.所有的swift类型(枚举, 类和结构体)都支持定义下标2.同一个类型可以定义多个下标3.通过下标的形参列表或者返回值类型来区分不同的下标4.同一类型中定义多个不同的下标被称为下标重载*/class Person{    var x:Int?    var y:Int?    var width:Int?    var height:Int?        // 通过下标进行访问时会调用    // 形参列表, 与参数的形参列表的用法基本相同, 但是不支持指定外部参数和默认值    // 下标的返回值类型可以是任何有效的类型    subscript (index: Int) -> Int {        get{            switch index {            case 0:                return self.x!            case 1:                return self.y!            case 2:                return self.width!            case 3:                return self.height!            default:                return 0            }        }                // 通过下标进行设置时会调用        set(newValue){            switch index {            case 0:                self.x = newValue            case 1:                self.y = newValue            case 2:                self.width = newValue            case 3:                self.height = newValue            default:                break            }        }    }        subscript(stringNameKey: String) -> Int? {        get {            switch stringNameKey {            case "x":                return self.x!            case "y":                return self.y!            case "y":                return self.width!            case "y":                return self.height!            default:                return nil            }        }    }}var p = Person()p.x = 1p.y = 2p.width = 3p.height = 4// 通过下标访问属性p[0]// 通过下标修改属性p[1] = 11111p.yp["x"]p["y"]

  

转载地址:http://agpka.baihongyu.com/

你可能感兴趣的文章
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>