美文网首页
Swift下标访问-Subscript

Swift下标访问-Subscript

作者: 来金德瑞 | 来源:发表于2017-06-27 17:20 被阅读131次

subscripts(下标)是访问对象数据中的快捷方式,所谓下标脚本语法就是能够通过,实例[索引值]来访问实例中的数据,类似于我们访问数组和字典,其实Swift中的数组和字典是一个结构体

Array:public subscript(index: Int) -> Element
arr[0] == arr.subscript(0)
Dictionary:public subscript(key: Key) -> Value?
dict["key"] == dict.subscript("key")

使用案列

struct Student {
    var name:String = "xiaoming"
    var math:Double = 99.0
    var chinese:Double = 99.0
    var english:Double = 99.0
    
    func score(course:String) ->Double?
    {
        switch course{
        case "math":
            return math
        case "chinese":
            return chinese
        case "english":
            return english
        default:
            return nil
        }
    }
    
    
    //要想实现下标访问, 必须实现subscript方法
    subscript(course:String) ->Double?{
        //如果想要通过下标访问, 必须实现get方法
        get{
            switch course{
            case "math":
                return math
            case "chinese":
                return chinese
            case "english":
                return english
            default:
                return nil
            }
        }
        
        //如果想要通过下表赋值, 必须实现set方法
        set{
            switch course{
            case "math":
                math = newValue!// 因为返回的是可选类型,所以使用了强制解包
            case "chinese":
                chinese = newValue!
            case "english":
                english = newValue!
            default:
                print("not found")
            }
            
        }
    }
}

var stu = Student(name: "zs", math: 99.0, chinese: 88.0, english: 10.0)
print(stu.score(course: "math") ?? "nil")
stu["chinese"] = 100.0
print(stu["chinese"]!)

Swift中允许多索引的下标的

struct Mul {
    subscript(a:Int, b:Int,c:Int) -> Int
    {
        return a * b * c
    }
}
var m = Mul()
print(m[3, 5,10]) //150

相关文章

  • Swift下标访问-Subscript

    subscripts(下标)是访问对象数据中的快捷方式,所谓下标脚本语法就是能够通过,实例[索引值]来访问实例中的...

  • Swift - 下标(Subscript)

    下标(Subscript) 使用 subscript 可以给任意类型(枚举、结构体、类)增加下标功能subscri...

  • Swift 下标subscript

    下标可以定义在类、结构体和枚举中,是访问集合、列表、序列中元素的快捷方式。可以使用下标的索引,设置和获取值,而不需...

  • 《Swift从入门到精通》(十):下标

    下标(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 下标(Subscript)类、结构和枚...

  • 第十二章 下标

    c++下标通过重载操作符operator []实现,swift的下标语法: subscript(index: In...

  • Swift语法 -- [10 - 下标]

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

  • Swift-subscript下标

    类,结构,枚举都可以定义下标脚本(subscripts),下标脚本是一种获取集合列表或序列的成员元素的快速方法。使...

  • Swift-下标(subscript)

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

  • Swift-下标(subscript)

    下标(subscript) 使用subscript可以给任意类型(枚举、结构体、类)增加下标功能 subscrip...

  • 12、【Swift】下标 - Subscript

    适用:类、结构体、枚举 场景:读写 集合、列表、序列 中的元素(比调用方法便捷) someArray[index]...

网友评论

      本文标题:Swift下标访问-Subscript

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