下标脚本语法和继承

下标脚本允许你通过在实例后面的方括号中传入一个或者多个的索引值来对实例进行访问和赋值。语法类似于实 例方法和计算型属性的混合

struct TimesTable{

let multiplier: Int

subscript(index:Int) -> Int{

return multiplier * index;

}

}

let  threeTimesTable = TimesTable(multiplier: 3)

print("3的6倍是\(threeTimesTable[6])")

TimesTable例子是基于一个固定的数学公式。它并不适合对threeTimesTable[6]进行赋值操作,这也是为什么附属脚本只定义为只读的原因。

var numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]

numberOfLegs["bird"] = 2

Swift中字典的附属脚本实现中,在get部分返回值是Int?,上例中numberOfLegs字典通过附属脚本返回的是一个Int?或者说“可选Int”,不是每一个字典的索引都能得到一个整型值,对于没有设置过值得索引的访问返回结果就是nil;同样想要从字典实例中删除某个索引下的值也是需要给这个索引赋值的nil即可。

继承

一个类可以继承另一个类的方法,属性和其他特性。当一个类继承其他类时,继承类叫子类,被继承类叫超类。

Swift中的类并不是从一个通用的基类继承而来。如果你不为你定义的类指定一个超类的话,这个类就自动成为基类。

防止重写

你可以通过方法,属性或下标脚本标记为final来防止它们被重写,只需要在声明关键字前加上final特性即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,873评论 1 10
  • 基础部分(The Basics) 当推断浮点数的类型时,Swift 总是会选择Double而不是Float。 结合...
    gamper阅读 1,332评论 0 7
  • 官方文档 下标脚本 类,结构体和枚举可以定义下标脚本,下标脚本可以认为是访问集合(collection),列表或序...
    hrscy阅读 256评论 1 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399