前言
Swift编程语言,支持多编程范式和编译式,用来撰写基于macOS/OS X、iOS、iPadOS、watchOS、tvOS和visionOS的软件。(维基百科)
初始化方法
app/ViewController.swift1 2 3 4 5 6
| override func viewDidLoad() { super.viewDidLoad() ... }
|
注释
输出语句
格式化输出(格式说明符)
1
| String(format: "文本内容%d", 1)
|
格式化输出(模板字符串)
变量
声明变量
1
| var 变量名: [数组内存放的数据的数据类型]
|
定义变量
变量赋值
常量
定义常量
数据类型
| 类型 |
描述 |
Int |
整型型 |
Float |
单精度浮点型 |
Double |
双精度浮点型 |
Bool |
布尔型 |
String |
字符串型 |
Array |
数组 |
Dictionary |
字典 |
1 2 3 4 5 6 7 8 9 10 11 12 13
| var a: Int = 0
var b: Float = 0F
var c: Double = 0
var d: Bool = false
var e: String = ""
var f: Array<Int> = [1, 2]
var g: Dictionary<Int, Int> = [1: 0, 2: 0]
|
安全检查(Optional)
定义允许为空的变量
- 如果变量的值允许为空,则需要在数据类型的末尾使用
?标记
使用允许为空的变量
强制使用
- 如果使用这个变量的时候,确信这个变量的值不为空,则需要在变量名的末尾使用
!标记来强制使用这个变量
1
| var 变量名: 数据类型 = 允许为空的变量名!
|
非空判断
1 2 3
| if 允许为空的变量名 != nil { var 变量名: 数据类型 = 允许为空的变量名! }
|
赋值判断
- 先在分之语句中将允许为空的变量赋值给一个新的变量,只有新的变量不为空值时才会进入代码块内,然后在分之语句的代码块内使用新的变量
1 2 3
| if let 一定不为空的变量名 = 允许为空的变量名! { var 变量名: 数据类型 = 一定不为空的变量名 }
|
指定空值的默认值
1
| var 变量名: 数据类型 = 允许为空的变量名 ?? 默认值
|
非空才会执行
非空才会调用的属性
非空才会调用的函数
运算符
算术运算符
+(正号)、-(负号)
+(加号)、-(减号)、*、/、%
关系运算符
逻辑运算符
赋值运算
=、+=、-=、*=、/=、%=
&=、|=、^=、<<=、>>=
赋值运算符两边,要么都加空格,要么都不加空格,不要出现一侧加空格一侧不加空格的情况,否则会报错
按位运算符
区间运算符
分支语句
if语句
1 2 3
| if 布尔表达式 { 布尔表达式成立时执行的代码 }
|
1 2 3 4 5
| if 布尔表达式 { 布尔表达式成立时执行的代码 } else { 布尔表达式不成立时执行的代码 }
|
1 2 3 4 5 6 7
| if 布尔表达式1 { 布尔表达式1成立时执行的代码 } else if 布尔表达式2 { 布尔表达式2成立时执行的代码 } else { 以上布尔表达式都不成立时执行的代码 }
|
1 2 3 4 5
| if 布尔表达式1 { if 布尔表达式2 { 布尔表达式1和2都成立时执行的代码 } }
|
1 2 3
| if 布尔表达式1, 布尔表达式2 { 布尔表达式1和2都成立时执行的代码 }
|
switch语句
- Swift语言的
switch语句不具有穿透行为,在每个case语句中,无需使用break跳出seitch语句
1 2 3 4 5 6 7 8
| switch 变量名 { case 值1: 变量值为值1时执行的代码 case 值2: 变量值为值2时执行的代码 default: 变量值不为以上任何值时执行的代码 }
|
- 如果需要强制穿透行为,需要在
case语句结束后用fallthrough关键字
1 2 3 4 5 6
| switch 变量名 { case 值1: 变量值为值1时执行的代码 fallthrough case 值2: 变量值为值2时执行的代码
|
1 2 3 4 5 6 7 8 9 10
| switch 变量 { case 1...2: 变量在区间[1,2]时执行的语句 case 1..<2: 变量在区间[1,2)时执行的语句 case ...1: 变量在区间(∞,1)时执行的语句 default: 变量不在以上任何区间时执行的语句 }
|
循环语句
while语句
1 2 3
| while 布尔表达式 { 布尔表达式成立时反复执行的代码 }
|
repeat…while语句
1 2 3
| repeat { 布尔表达式成立时反复执行的代码 } while 布尔表达式
|
for…in语句
1 2 3
| for 元素 in 可迭代对象 { ... }
|
break关键字
continue跳出当前循环
1 2 3
| while true { continue }
|
三元运算
1
| var 变量名: 数据类型 = 布尔表达式 ? 布尔表达式成立时返回的结果 : 布尔表达式不成立时返回的结果
|
完成
参考文献
哔哩哔哩——疯狂滴小黑