Swift-下标(Subscripts)

类,结构和枚举可以定义下标,它们是访问集合,列表或序列的成员元素的快捷方式。 您可以使用下标来按索引设置和检索值,而不需要单独的设置和检索方法。 例如,您可以使用someArray [index]来访问数组中的元素,Dictionary实例中的元素可以使用someDictionary [key]来访问。

下标语法

下标使您能够通过在实例名称后面的方括号中写入一个或多个值来查询类型的实例。 它们的语法类似于实例方法语法和计算属性语法。 您使用subscript关键字编写下标定义,并以与实例方法相同的方式指定一个或多个输入参数和返回类型。 与实例方法不同,下标可以是读写或只读的。 此行为由getter和setter以与计算属性相同的方式传达:

subscript(index: Int) -> Int {
    get {
        // return an appropriate subscript value here
    }
    set(newValue) {
        // perform a suitable setting action here
    }
}

与只读计算属性一样,可以将只读下标的get关键字删除:

subscript(index: Int) -> Int {
    // return an appropriate subscript value here
}

这里是一个只读下标实现的例子,它定义了一个Times表结构来表示整数的n次表:

struct TimesTable {
    let multiplier: Int
    subscript(index: Int) -> Int {
        return multiplier * index
    }
}
let threeTimesTable = TimesTable(multiplier: 3)
print("six times three is \(threeTimesTable[6])")
// Prints "six times three is 18"

下标用法

“下标”的确切含义取决于其使用的上下文。 下标通常用作访问集合,列表或序列中的成员元素的快捷方式。 您可以以最适当的方式为您的特定类或结构的功能实现下标。

例如,Swift的Dictionary类型实现了一个下标来设置和检索存储在Dictionary实例中的值。 您可以通过在下标括号中提供字典键类型的键,并将字典值类型的值分配给下标,来设置字典中的值:

var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
numberOfLegs["bird"] = 2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,957评论 1 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,246评论 19 139
  • Swift属性 Swift属性将值跟特定的类,结构体,枚举关联。分为存储属性和计算属性,通常用于特定类型的实例。属...
    小小厨师阅读 886评论 0 0
  • 基础部分(The Basics) 当推断浮点数的类型时,Swift 总是会选择Double而不是Float。 结合...
    gamper阅读 1,383评论 0 7
  • 今天应该是这几天以来最早躺在床上的一天了 出去,回来,出去,回来,留给我们自己的时间没有更多。 二月以来熟悉了工作...
    俊俊李阅读 551评论 1 3