13.下标

作者: LucXion | 来源:发表于2021-07-20 09:16 被阅读0次

下标可以定义在类、结构体和枚举中。允许你通过在实例名称后面的方括号中传入一个或者多个索引值来对实例进行查询。

下标通常作为访问集合,列表或序列中元素的快捷方式。

实例下标

// 枚举结构中使用下标
enum MultiplicationTable:Int {
    case one = 1,two,three,four,five,six,seven,eight,nine
  // subscript关键字,一维
    subscript(table:String)->String{
      // 省略set的实现方式,下标为只读
        if table == "MultiplicationTable" {
        var content = ""
        var line = 1
        for i in 1 ... self.rawValue {
            content.append("\(line) * \(self.rawValue) = \(line * self.rawValue)\n")
            line += 1
        }
            return content
        }
        return ""
    }
  // 可以定义多个下标,二维
    subscript(a:Int,b:String)->String{
        get{
            return "\(a) + \(b)"
        }
        set {
            print(newValue)
        }
    }
}
let one : MultiplicationTable = .seven
let two = one[1,"a"]

类下标

正如上节所述,实例下标是在特定类型的一个实例上调用的下标。你也可以定义一种在这个类型自身上调用的下标。这种下标被称作类型下标。你可以通过在 subscript 关键字之前写下 static 关键字的方式来表示一个类型下标。类类型可以使用 class 关键字来代替 static,它允许子类重写父类中对那个下标的实现。

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)

相关文章

  • 13.下标

    下标可以定义在类、结构体和枚举中。允许你通过在实例名称后面的方括号中传入一个或者多个索引值来对实例进行查询。下标通...

  • Swift5.1继承

    13.继承 重写1.重写:⼦类可以为继承来的实例方法,类方法,实例属性,类属性,或下标提供⾃己定制的实现。我们把这...

  • swift 下标(下标语法、下标用法)

    类、结构体和枚举都可以定义下标,下标是用于访问集合、列表或序列的成员元素的快捷方式。可以使用下标,设置和获取值,而...

  • 下标

    本页包含内容: [TOC] 下标可以定义在类、结构体和枚举中,是访问集合、列表和序列中元素的快捷方式,可以使用下标...

  • 下标

    扩展一个数组的的下标, 传入一个下标的数组,返回这些下标对应的元素的数组 extension Array{ sub...

  • 下标

  • 下标

    下标(subscript) 使用subscript可以给任意类型(枚举、结构体、类)增加下标功能,有些地方也翻译为...

  • Leetcode PHP题解--D82 13. Roman to

    D82 13. Roman to Integer 题目链接 13. Roman to Integer 题目分析 将...

  • Swift 5.x - 继承(中文文档)

    引言 继续学习Swift文档,从上一章节:下标,我们学习了Swift下标相关的内容,如下标语法、下标用法、下标选项...

  • 2018-12-28

    """1.获取字符字符串[下标] 字符串[开始下标:结束下标:步长]字符串[开始下标:结束下标]字符串[::步长]...

网友评论

      本文标题:13.下标

      本文链接:https://www.haomeiwen.com/subject/njmppltx.html