美文网首页
Swift(十七)下标

Swift(十七)下标

作者: 冰三尺 | 来源:发表于2016-11-02 10:54 被阅读19次
4b67dc404e0f115cfd1a4d559125bce3900e938c12e518-aQVdL5_fw658.jpeg

附属脚本可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中,可以认为是访问对象、集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法。

附属脚本本质上是Swift提供的一组开放的自定义接口, 能让你快速访问需要访问的值, 一般情况下附属脚本只是用读取属性, 而不使用写入属性.

//定义附属脚本使用subscript关键字,显式声明入参(一个或多个)和返回类型。
//与实例方法不同的是附属脚本可以设定为读写或只读
subscript(index: Int) -> Int { 
    get { 
        // 返回与入参匹配的Int类型的值 
    } 
 
    set(newValue) { 
        // 执行赋值操作 
    } 
} 

newValue的类型必须和附属脚本定义的返回类型相同。与计算型属性相同的是set的入参声明newValue就算不写,在set代码块中依然可以使用默认的newValue这个变量来访问新赋的值。

与只读计算型属性一样,可以直接将原本应该写在get代码块中的代码写在subscript中, 这样就定义了一个只有读取功能的附属脚本

//只有读取功能的附属脚本
subscript(index: Int) -> Int { 
    // 返回与入参匹配的Int类型的值 
} 

下面代码演示了一个在TimesTable结构体中使用只读附属脚本的用法,该结构体用来展示传入整数的n倍。

struct TimesTable {
    let multiplier: Int
    //附属脚本, 本质上就是一个特殊的读写
    subscript(index: Int) -> Int {
        return multiplier * index
    }
}
let threeTimesTable = TimesTable(multiplier: 3)
print("3的6倍是\(threeTimesTable[6])")
// 输出 "3的6倍是18"

相关文章

  • Swift(十七)下标

    附属脚本可以定义在类(Class)、结构体(structure)和枚举(enumeration)这些目标中,可以认...

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

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

  • Swift:下标

    中文文档 一、下标语法 下标允许你通过在实例名称后面的方括号中传入一个或者多个索引值来对实例进行存取。语法类似于实...

  • Swift - 下标

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

  • Swift 下标

    让对象和结构体如同数组和字典一样使用[ ]的形式进行对象访问

  • Swift 下标

    类、结构体、枚举可以定义下标 console log 如下 下标实例 console log 如下

  • Swift - 下标

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

  • Subscripts(下标)

    //离上次学习swift过了好久,这才刚开始学习swift呀,坚持。 //下标//“下标可以定义在类、结构体和枚举...

  • iOS开发之Swift篇(11)—— 下标

    目录 版本 下标 语法 应用 版本 Xcode 11.3.1Swift 5.1.3 下标 下标可以定义在类、结构体...

  • Swift 5.1 (12) - 下标

    级别: ★☆☆☆☆标签:「iOS」「Swift 5.1」「下标」作者: 沐灵洛审校: QiShare团队 下标 下...

网友评论

      本文标题:Swift(十七)下标

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