Swift 第一课时
- 常量与变量
- 类型注解
- 打印
- 注释
- 数字类型
- 浮点数类型
- 类型安全和类型推论
- 数字进制
- 类型花名(别名)
- Boolean
- 元组 (Tuples)
- Optionals(可选的)
- nil
- optional 绑定
- 隐式展开 optional
- 错误处理
- 断言
常量与变量
常量
不可被修改。变量
可被修改。
声明方式
多个变量声明
小提示
如果存储的值不会发生改变,请使用
常量
,变量
只用来存储汇会改变的内容。
类型注解
当你创建一个变量时,可以显示的指定变量类型(虽然Swift非常聪明,可以自己推导)。
使用方式
多个变量声明
小提示
如果你提供了一个初始值,就不用指定变量类型。
这种方式是不必要的
打印
print() 函数是Swift的基本打印功能, 它可以打印任意的常量和变量
注释
注释是一个语言的基本模块,方便我们调试,隐藏不必要的信息,解释一段程序的功能等。
使用方式
数字类型
和c语言一样,它也提供了 signed
和 unsigned
两种数字类型(有符号和无符号)
有符号的数字:(正数,0,负数)
无符号的数字:(正数,0)
Swift将数字按照位数分成了几类: 8
16
32
64
数字界限
Swfit 提供了直接访问数字的最大值和最小值。
|
|
Int
Swift 提供了一个默认的类型
Int
它是根据当前系统的位数定义的。
- 在32位系统中,Int 等于 Int32
- 在64位系统中,Int 等于 Int64
UInt
Swfit 提供一个无符号的类型
UInt
, 它和Int
类型一致,根据当前系统的位数定义。
小提示
如果当你需要明确指定无符号的类型时才使用
UInt
,否则Int
类型应当是你的首选项。
浮点数类型
浮点数类型,一般指
Double
和Float
Double
代表 64位 浮点数类型。Float
代表 32位 浮点数类型。
小提示
Double
类型的精确度至少有 15位,而Float
类型的精确度比Double
少 6位。
类型安全和类型推论
Swift 语言是类型安全的语言,同 java 一样,但同时不同于 java 的是,它可以推导出变量的类型。两个特点是同事兼备的。
|
|
数字进制
Swift 也提供了一个直接表示数字的进制
12345678910111213141516 // 十进制let decimalInteger = 17// 二进制let binaryInteger = 0b10001// 八进制let octalInteger = 0o21// 十六进制// hexadecimaInteger = 0x11// 科学计数法1.25e2 = 1.25 * 10 * 101.25e-2 = 1.25 / 10 / 10// 十六进制科学计数法0xFp2 = 15 * 2 * 20xFp-2 = 15 / 2 / 2// 声明数字(支持_)let oneMillion = 1_000_000
类型花名(别名)
给 Swift 已经存在的类型名称,取一个别名
|
|
Boolean
和其他语言一样
True
False
|
|
元组 (Tuples)
元组是多个数据组成一组,它包含任意类型
例如
小提示
元组是非常有用的数组结构,可以存储任意的类型,可以根据你的需求声明独特的数据结构。
Optionals(可选的)
你可以在值可能不存在的地方使用 optionals.
123 let possibleNumber = "123"let convertedNumber = Int(possibleNumber)// convertedNumber 被推导成一个 Int? 或者 Optional Int(Int? or not Int)
nil
你可以给 optional 变量分配一个特殊的值 nil .
|
|
小提示
尝试使用
!
来判断 optional 值,可以有效控制运行时错误发生。每次优先判断 optional 值存在时,才去使用 optional 值。
optional 绑定
optional 绑定可以使用在
if
和while
语句中
123 if let a = Int("4"), b = Int("10") where a < b {print("\(a) < \(b)")}
隐式展开 optional
隐式展开的好处,在于不用在每次调用 optional的时候,去检测它是否存在。
|
|
小提示
如果 隐式展开 optional的值是nil,尝试使用它的时候,它会抛出一个运行时错误。
错误处理
当你的程序遭遇错误时,你可以使用 错误处理 来响应你的错误信息。
- 你可以指明你的函数抛出一个错误。使用关键字
throws
- 使用
try
catch
来捕获你的错误信息。
|
|
断言
有时候,你的代码不可能简单的继续执行,当它不满足一些特定的条件。在这些情况下,你可以使用一个断言在你的代码中到代码运行结束,当发生在一些缺失和无效值的时候可以提供一个调试机会。
调试与断言
|
|
小提示
使用机构编译后的代码,断言是被禁用的。例如,当你编译正式版时在 Xcode 中是禁用的。
断言的使用场景
- 一个数字下标是通过一个自定义下标实现的,但是下标索引值不能太低和太高。
- 通过函数得到一个值,但是一个无效的值意味着这个函数是不能完成任务的。
- 一个可选的值是 nil, 但是一个 non-nil 值被使用,而且代码还执行成功了。
小提示
断言能够造成你的应用停止运行,这不能替代你的代码设计的当一个无效的情况从不可能上升到可能。既然如此,在一个无效的情况变为可能时,一个断言是有效的方式,在你的应用发布前可以确保这个条件能够高亮并且通知到开发者。