Swift学习笔记12——下标(Subscripts)
2015-10-04 14:59
453 查看
所谓的下标,就是[]。在Array和Dictionary的时候就已经接触过了。它其实算一种特殊的方法,利用下标,我们可以将属性的getter和setter写在一起。而且还可以提供另外的一些功能。
还记得String截串的时候无比麻烦吗?利用下标和扩展(Extension)封装后变得很简单。这个在讲到扩展的时候在写出来吧。
下标语法
当然可以和计算属性一样将setter删去,变为只读。
下面举一个使用例子。假设在买橙子。下标表示你要买多少斤,下标能返回总共价格。 当对下标赋值的时候,表示买那么多斤的时候总共花了多少钱。然后修改了橙子的单价.
下标不止一个变量,还可以有多个变量。变量也可以是不同的类型。
还记得String截串的时候无比麻烦吗?利用下标和扩展(Extension)封装后变得很简单。这个在讲到扩展的时候在写出来吧。
下标语法
subscript(index: Int) -> Int { get { // return an appropriate subscript value here } set(newValue) { // perform a suitable setting action here } }
当然可以和计算属性一样将setter删去,变为只读。
下面举一个使用例子。假设在买橙子。下标表示你要买多少斤,下标能返回总共价格。 当对下标赋值的时候,表示买那么多斤的时候总共花了多少钱。然后修改了橙子的单价.
下标不止一个变量,还可以有多个变量。变量也可以是不同的类型。
class Orange { var pricePerKg: Double = 3 subscript(kg: Double, str: String) -> Double { get{ print(str) return kg * pricePerKg } set{ print(str) self.pricePerKg = newValue / kg } } } var o = Orange() print("price of 10kg orange ",o[10,"buy 10 kg orange"]) o[100,"buy 100kg orange"] = 250 print("price per kg when buying 100kg orange ",o.pricePerKg) //打印 //buy 10 kg orange //price of 10kg orange 30.0 //buy 100kg orange //price per kg when buying 100kg orange 2.5
相关文章推荐
- Swift学习笔记11——方法(Method)
- Swift学习笔记10——属性(Properties)
- Swift 线程
- Swift 2.0 之map 与 zip
- Swift学习笔记9——类和结构体(Classes and Structures)
- Swift学习- 继承(十三)
- Swift学习笔记8——枚举类(Enumerations)
- swift map
- 【面试必备】Swift 面试题及其答案
- 寒哥带你深入了解下Swift中的Value Type
- Swift-循环控制新特性
- Swift - 元组的用法
- Swift 运算符
- Swift学习(二)
- Swift学习(一)
- Swift中的数据类型
- 7.Swift翻译教程系列——控制循环的流程
- swift基础学习篇发布时间调整
- swift 中switch 的新用法
- swift实现ios类似微信输入框跟随键盘弹出的效果