swift的简单特点:
- 句柄尾部可以不用写分号(除非多行语句在同一行);
- swift可以嵌套注释(/* /* */ */ )(单行和多行注释同OC);
1.常量/变量 修饰符
let(常量)/ var (变量)
- 常/变量一旦设定,不可修改 既定的修饰符
- 多个常/变量可以写在一行,用逗号分隔
-
常/变量 的名字 可以是几乎所有的字符(包括Unicode字符),
但不能是空格/数学符号/箭头/私有(无效的)Unicode码/线/框画/以数字开头,
一般不建议使用swift关键字,若非,则需加(`)
2. 基本数据类型
Int(在不同的平台上int取值不同32/64)/UInt/Float(32位浮点数,至少6位精度)/Double(64位浮点数,至少15位精度,推荐使用)/Bool(true和false)/String
- 数值 1 不是bool值,不能作为判断条件(不再等价于true )
*类型别名 typealias (为已知数据类型 指定别名 方便表词达意)
3.类型推断/指定类型
类型推断:编译器依据初始值推断出值的类型
指定类型:初始化时,写明值的类型
-
若初始值为浮点型数值,会被推断为Double类型(如图implicDouble)
4.类型转换
基本数据类型之间的转换
数值类型转化为字符串,字符串类型转化为数值类型,不同数值之间的转化
5.字符串分多行显示 ("""")
6.数组和字典
根据下标修改数组中的值,字典新增健值对
创建空数组/空字典
若数组和字典的类型可推断,则空数组和空字典可如下表示
7.元组
- 元组是一组混合类型的数据类型
- 元组多作为函数的返回值 使用
- 元组不适用于创建复杂的数据结构
-
元组适用于临时值
(复杂且可存储的类型值,可考虑 类或者结构体)
8.可选值
- 可选值代表两种可能:1,值有效且可使用;2,没有值(nil)
- 非可选值,不能赋值为nil。nil在OC中是指针,而在swift中不是指针。
- C/OC皆不存在可选值这一概念。OC中最接近这一概念的是,函数返回值是返回nil或者是an object,即对象是否存在,若非对象,则会出现例如NSNotFound等现象。而swift中的可选值,可适用于所有类型的值。
- 可选绑定: 判断是否有值,若有值,可作为临时常量或者变量
-
隐式可选值: 确定可选值一定有值,一般用于类的初始化期间
9.错误处理
10.断言和先决条件
- 使用它们可以确保在执行后面的代码之前已经满足了条件。如果断言或者先决条件中的值是true,代码像原来一样继续执行。如果条件是false,程序当前的状态就是无效的,代码会结束执行,app也会停止运行。
-
断言和先决条件的不同之处在于它们检测的时机不一样:断言只在调试模式中检测,先决条件在调试模式和产品模式都会检测。在产品模式下,断言中的条件不会被检测,也就是说在开发过程中,无论使用多少断言,都不会影响最后的产品的性能。