前言
Swift学习笔记
注释
初始化方法
app/ViewController.swift1 2 3 4 5 6
| override func viewDidLoad() { super.viewDidLoad() ... }
|
数据类型
String
:字符串
Int
:整型
Float
:单精度浮点型
Double
:双精度浮点型
Bool
:布尔型
true
:对
false
:错
Array
:数组
[值, 值]
Dictionary
:字典
[key: value]
变量
声明变量
基本类型
数组
1
| var 变量名: [数组内存放的数据的数据类型]
|
定义变量
常量
声明常量
定义常量
输出语句
格式化输出
字符串中插入变量值
占位符替换为变量值
1
| String(format: "%.2f", 值)
|
生成随机数
生成随机整数
生成随机浮点数
生成随机布尔值
随机获取数组中的元素
安全检查(Optional)
定义允许为空的变量
- 如果变量的值允许为空,则需要在数据类型的末尾使用
?
标记
使用允许为空的变量
强制使用
- 如果使用这个变量的时候,确信这个变量的值不为空,则需要在变量名的末尾使用
!
标记来强制使用这个变量
1
| var 变量名: 数据类型 = 允许为空的变量名!
|
非空判断
1 2 3
| if 允许为空的变量名 != nil { var 变量名: 数据类型 = 允许为空的变量名! }
|
赋值判断
- 先在分之语句中将允许为空的变量赋值给一个新的变量,只有新的变量不为空值时才会进入代码块内,然后在分之语句的代码块内使用新的变量
1 2 3
| if let 一定不为空的变量名 = 允许为空的变量名! { var 变量名: 数据类型 = 一定不为空的变量名 }
|
指定空值的默认值
1
| var 变量名: 数据类型 = 允许为空的变量名 ?? 默认值
|
非空才会执行
非空才会调用的属性
非空才会调用的函数
运算符
赋值运算
赋值运算符两边,要么都加空格,要么都不加空格,不要出现一侧加空格一侧不加空格的情况,否则会报错
比较运算符
逻辑运算符
分支语句
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都不符合时执行的语句 }
|
多个条件同时满足
1 2 3
| if 条件1, 条件2 { 符合条件时执行的语句 }
|
switch
1 2 3 4 5 6 7 8
| switch 变量 { case 值1: 变量等于值1时执行的语句 case 值2: 变量等于值2时执行的语句 default: 变量不等于以上任何值时执行的语句 }
|
1 2 3 4 5 6 7 8 9 10
| switch 变量 { case 3...4: 变量在区间[3,4]时执行的语句 case 1..<2: 变量在区间[1,2)时执行的语句 case ...1: 变量在区间(∞,1)时执行的语句 default: 变量不在以上任何区间时执行的语句 }
|
循环语句
for
遍历数组
1 2 3 4
| let list = [] for item in list { ... }
|
遍历Set集合
1 2 3 4
| let set: Set = [] for item in set { ... }
|
遍历字典
1 2 3 4 5
| let map = ["key_1": "value", "key_2": "value"] for item in map { item.key item.value }
|
遍历字符串
1 2 3 4
| let str = "" for item in str { ... }
|
遍历有序数列
1 2 3 4
| let numList = 0...1 for item in numList { ... }
|
不使用数列变量
while
计时器
定义一个空定时器
创建一个定时器
timeInterval
:指定间隔多久执行一次,单位秒
selector
:指定间隔后执行的函数名
repeats
:指定即时结束后是否重新计时
1 2 3 4 5
| timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
@objc func updateTimer() { ... }
|
1 2 3
| timer = Time.scheduledTime(withTimeInterval: 1.0, repeats: false) { (timer) in ... }
|
销毁定时器
数学运算
指数运算
异步
1 2 3
| DispatchQueue.main.async { ... }
|
字符串
字符串拼接
完成
参考文献
哔哩哔哩——疯狂滴小黑