再谈枚举
在 C 语言中,只能为枚举 case 分配整型值, Swift 则提供了更多的灵活性
对于 String 和 Int 类型,可以忽略为枚举中的 case 赋值, Swift编译器也能正常工作。
枚举的元素可以是结合值(associated value)
下面通过一个可以存储一维条形码(由3个整数组成)和二维条形码(由字符串组成)的枚举条形码实例来说明
guard语句
defer语句
defer 译为延缓、推迟之意。
读取某文件内容并处理数据,你需要首先打开文件夹,读取文件内容以及处理数据,关闭文件以及文件夹。
static关键字
与C++中的静态成员变量用法类似。
存储与类相关的数据,而不是与对象相关的数据。比如银行账户的“利率”。
静态属性存储在静态数据区。
用法:变量声明前加上关键是“static”。
static var sideLength:Double
与静态属性对应的有静态方法
final关键字
可以在类的定义中使用final关键字声明类、属性、方法和下标。
使用final声明的类不能被继承
使用final声明的属性、方法和下标不能被重写
final class Person{…}
构造与析构
构造过程
类(或结构体)在构建实例的过程中需要进行一系列初始化工作
析构过程
实例在释放的时候要进行一些清除资源的工作
在Swift语言中,构造函数名为init。
若没有提供构造函数代码,编译器会提供默认构造函数。
构造函数可以重载,要求参数列表不同。
Swift语言中,析构函数名为deinit
ARC自动管理内存,一般不需要实现析构函数;
当在对象释放时需要做一些关闭XXX等操作时才需要;
lazy关键字
仅在需要时才分配内存,对小内存的手机而言
一种使用场景是,对象的属性的初始值依赖于其它的属性,所以必须先创建出这个对象,才能知道这个属性的值。
下标
- 在Swift中,可以定义一些集合类型,他们可能会有一些集合类型的存储属性,这些属性中的元素可以通过下标访问。
- Swift中的下标相当于Java中的索引和C#中的索引器。
- 定义下标使用关键字subscript,使用下标像数组一样,使用[]访问。
类,结构和枚举类型都可以通过定义下标来访问一组或者一个序列中的成员元素
- 通过下标索引就可以方便地检索和设置相应的值,而不需要其他的额外操作
- 下标不仅可以定义为一维的,还可以根据需要定义为多维的,多个参数的
访问范围
在Swift中,访问范围主要有两个:模块,源文件。 模块 是指一个应用程序包或一个框架。 源文件 是扩展名为.swift文件。
Swift提供了3种访问级别: public 可以访问自己模块中的任何public实体。如果使用import语句导入其他模块,我们可以访问其他模块的public实体。 internal 能访问自己模块的任何internal实体,不能访问其他模块中的internal实体。
internal可以省略,默认访问权限是internal。 private 只能在当前源文件中使用的实体,称为私有实体。
再论函数
函数式编程:函数是“一等公民”类型(应该是引用类型)
函数可以定义变量,传参数、返回函数等;
闭包:匿名函数(没有名字的函数)
函数:有命闭包(方法不是闭包)
Swift高阶函数,每个的作用? sort filter map flatmap reduce
函数作类型: (String) ->String
异常处理
如何建造异常类型?
如何抛出异常?
如何获取并处理异常?
|
请发表评论