1、Swift原生数据类型:值类型(副本)、引用类型(本身)
2、整数型,max min方法,获得当前整数的最大值、最小值
3、浮点型,默认的推断功能是Double类型,Float需要自己声明
4、0b:二进制;0o:八进制;0x:十六进制
5、整数和浮点数可以增加0和_来提高可读性,例如:000.0156;3_360_000(类似千分符)
6、数字类型之间的转换用构造函数,UInt16()、UInt8()、Float()等
7、元组,是一种数据结构,关系数据库中的基本概念,元组表中的一条记录,(“值”,“值”,“值” ) 或者 (字段:“值”,字段:“值”,字段:“值”)
元组多用于函数返回多值
8、Swift所有的数据类型声明的变量或常量不能为空nil
查询数据库之类的操作,会出现空值,需要可选类型?! var str :String? = nil
对可选类型,必须要进行拆包,?-!显式拆包,!-! 隐式拆包,隐式拆包常用于可选类型值可以确定为非空
可选绑定:可选类型的赋值、判断是否为空,如果不为空,可以拆包并且赋值给常量
9、字符(Character)、字符串,都是用双引号,不能用单引号
10、字符串的长度:str.characters.count
字符串的拼接:append方法
11、guard 条件表达式 else {跳转语句(return、break、continue、throw)} 语句组,提高多个if-else结构的可读性
表达式为true时,直接执行语句组
12、for i in stride(from: 2, to: 10, by: 2) {
if i == 3 {
break
}
stride来控制循环的步长,from to : ≥2,<10; from through : ≥2,≤10
for i in (1…5).reversed() :反向遍历
13、fallthrough,为了switch..case中,贯穿case用的,因为有隐性的break,所以要想贯穿case,需要加fallthrough
14、原生集合类型:数组、Set、字典(映射、散列表)
15、数组声明: var i: Array 或者 var i: [String]
let 数组,为不可变数组,必须初始化
var i = [String]() ,初始化了数组,开辟了内存空间;var i: [String] 还没有初始化,没有开辟内存空间
数组的长度:count属性
数组遍历:for i in 数组;for (index, value) in 数组.enumerated() 取出索引和元素
append增加,insert(_, at:_)插入,remove(at:_)删除
16、字典:key→value,键→值,key不能重复,value可以重复
var i:Dictionary 或者 var i: [Int : String]
字典需要初始化才能使用,往往在声明时初始化
字典元素的删除:removeValue(forKey:键名) 或者 键=nil
字典元素的替换:键=新值 或者 updateValue(新值, forKey:键名)
遍历键:for i in 字典.keys
遍历值:for i in 字典.values
全部遍历:for (index, value) in 字典
17、Set,无序、相同类型、不能重复
var i: Set
Set元素的插入:insert()
Set元素的删除:removeFirst() 删除第一个元素或者 remove()
Set的遍历:for i in Set 或者 for (index, value) in Set.enumerated(),index其实是可以循环的次数
Set的交集:A.intersection(B)
Set的并集:A.union(B)
Set的异或集合:A.symmetricDifference(B)
Set的差集:A.subtracting(B)
Set是否子集:A.isSubset(B)