美文网首页
Swift自定义类使用下标

Swift自定义类使用下标

作者: __Guan__ | 来源:发表于2017-03-27 23:58 被阅读19次

    数组和字典等集合类型,可以通过下标的方式来快速获取相对应的值。在swift中,可以通过subscript来实现这个功能。

    假设有一个学生类,有一个成员属性names来记录所有学生的姓名:

    class Students {
        var names: [String] = {
            return ["Wangxiaole", "Guanyi", "Liuxiang"]
        }()
    }
    
    let students = Students()
    let name = students.names[0]
    

    那么在获取数组中指定位置的元素,需要通过names来获取元素。而使用subscript后:

    extension Students {
        subscript(n: Int) -> String {
            return names[n]
        }
    }
    
    let name2 = students[0]
    

    这样就可以不通过访问names来获取指定的学生姓名。可是这样只能用下标来获取元素,如果要设置则需要实现get和set方法:

    extension Students {
        subscript(n: Int) -> String {
            get {
                return names[n]
            }
            set(name) {
                names[n] = name
            }
        }
    }
    
    let name3 = students[0]
    students[0] = "XXXX"
    

    这样就可以将names直接通过下标的方式来设置和获取了。是不是感觉帅帅的。

    相关文章

      网友评论

          本文标题:Swift自定义类使用下标

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