【问题标题】:Swift Type subscriptsSwift 类型下标
【发布时间】:2019-11-29 23:24:41
【问题描述】:

在 Apple Language Guide for Swift 5.1 中有一个类型下标的示例。

enum Planet: Int {
case mercury = 1, venus, earth, mars, jupiter, saturn, uranus, neptune
static subscript(n: Int) -> Planet {
    return Planet(rawValue: n)!
}
}
let mars = Planet[4]
print(mars)

当我尝试在操场上运行它时,出现编译器错误:

下标不能标记为“静态”

这是 Swift 5.1 特有的新功能吗?

我的 Xcode 是 10.2.1 而不是 11,所以我猜它是。

我还尝试了一个应该与 Swift 5 兼容的在线游乐场,但也出现了错误。 http://online.swiftplayground.run/

【问题讨论】:

    标签: swift xcode types subscript


    【解决方案1】:

    static and class subscripts 是 Swift 5.1 的一项新功能,如 Swift Evolution 文档SE-0254 中所述。

    The Swift 5.1 Programming Language Guide 如此描述此功能:

    类型下标

    如上所述,实例下标是您调用的下标 在特定类型的实例上。还可以定义下标 在类型本身上调用。这种下标称为 键入下标。您可以通过编写 static 来指示类型下标 subscript 关键字之前的关键字。类可以使用class 关键字,以允许子类覆盖超类的 该下标的实现。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 2017-02-06
      相关资源
      最近更新 更多