美文网首页
Swift5.1学习随笔之下标subscript

Swift5.1学习随笔之下标subscript

作者: SAW_ | 来源:发表于2020-04-24 16:37 被阅读0次
下标subscript
  • 使用subscript可以给任意类型(枚举、结构体、类)增加下标功能
  • subscript的语法类似于实例方法、计算属性、本质就是方法(函数)
class Point {
    var x = 0.0, y = 0.0
    subscript(index: Int) -> Double {
        set {
            if index == 0 {
                x = newValue
            }
            else if index == 1 {
                y = newValue
            }
        }
        get {
            if index == 0 {
                return x
            }
            else if index == 1 {
                return y
            }
            return 0
        }
    }
}
var p = Point()
p[0] = 11.1
p[1] = 22.2
print(p.x) // 11.1
print(p.y) // 22.2
print(p[0]) // 11.1
print(p[1]) // 22.2

subscript中定义的返回值类型决定了:

  • get方法的返回值类型
  • set方法中newValue的类型

subscript可以接受多个参数,并且类型任意

下标的细节

subscript可以没有set方法,但必须有get方法

class Point {
    var x = 0.0, y = 0.0
    subscript(index: Int) -> Double {
        get {
            if index == 0 {
                return x
            }
            else if index == 1 {
                return y
            }
            return 0
        }
    }
}

如果只有get方法,可以省略get

class Point {
    var x = 0.0, y = 0.0
    subscript(index: Int) -> Double {
        if index == 0 {
            return x
        }
        else if index == 1 {
            return y
        }
        return 0
    }
}

可以设置自定义参数标签

class Point {
    var x = 0.0, y = 0.0
    subscript(index i: Int) -> Double {
        if i == 0 {
            return x
        }
        else if i == 1 {
            return y
        }
        return 0
    }
}
var p = Point()
print(p[index: 1]) // 必须加上index,否则报错

下标可以是类型方法,默认都是实例方法

class Sum {
    static subscript(v1: Int, v2: Int) -> Int {
        return v1 + v2
    }
}
print(Sum[1, 2]) // 3

相关文章

  • Swift5.1学习随笔之下标subscript

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

  • Swift5.1 - 下标(subscript)(8)

    下标(subscript)在数组和字典中使用,但是你可以给任何类型(枚举,结构体,类)增加 下标subscript...

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

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

  • Swift - 下标(Subscript)

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

  • Swift-下标(subscript)

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

  • 下标(subscript)

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

  • 下标

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

  • [Swift5.1] 10-下标

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

  • Swift中的下标(subscript)

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

  • 09-方法、下标、继承

    一、方法(Method) mutating @discardableResult 二、下标(subscript) ...

网友评论

      本文标题:Swift5.1学习随笔之下标subscript

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