字面量
整形字面量
整形字面量可以是一个十进制,二进制,八进制或十六进制常量。二进制前缀为0b,八进制前缀为0o,十六进制前缀为0x,十进制没有前缀。
浮点型字面量
除非特别指定,浮点型字面量的默认推导类型为Double,表示为64位浮点数。
1.25e2表示1.25*10^2
1.25e-2表示1.25*10^-2
0xFp2表示15*2^2(表示F的值乘2的2次方)
0xFp-2表示15*2^-2
浮点型字面量允许使用下划线_来增强数字的可读性,下划线会被系统忽略,因此不会影响字面量的值。同样的也可以在数字前面加0,也不会影响值
字符串型字面量
它中不能包含未转义的双引号,未转义的反斜线,回车符或换行符。
\0 | 空字符 |
\\ | 反斜线 |
\b | 退格 |
\f | 换页 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符 |
\v | 垂直制表符 |
\' | 单引号 |
\" | 双引号 |
\000 | 1到3位的八进制数代表的任意字符 |
\xhh... | 1到2位十六进制所代表的任意字符 |
运算符
位运算符
这用来对二进制位进行操作,~为取反,&为按位与与,|为按位取或,^为按位与异或(若两个数的的同一位相同返回1),<<按位左移(空位用0填充),>>按位右移。
区间运算符
闭区间运算符:(a...b)定义一个包含a,b的所有值的空间。
半开区间运算符:(a..<b)定义包含a不包含b的所有值的空间。
运算符优先级
指针最优,单目运算优于双目运算。
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。逻辑运算最后运算。
swift循环
fallthrough语句
这个语句会让case之后的语句按顺序继续运行,不论条件是否满足。(一般不使用)
字符串
空字符串
可以使用空的字符串字面量赋值给变量或初始化一个String类的实例来初始化一个空的字符串。
var stringA = ""
let stringB = String()
可以使用字符串属性isEmpty来判断字符串是否为空。
if stringA.isEmpty{
print("stringA是空的")
}
字符串常量
var stringA = "字符串"
let stringB = String("字符串")
字符串中插入值
可以包含常量,变量,字面量和表达式。插入的每一项都在以反斜线为前缀的圆括号中。
\(varA)
字符串长度
使用String.count属性来计算
varA.count
Unicode字符串
可以迭代出UTF-8与UTF-16的编码。
for code in unicodeString.utf8{
print("\(code)")
}
字符串函数及运算符
isEmpty | 判断是否为空 |
hasPrefix(prefix:String) | 检查字符串是否有特定前缀 |
hasSuffix(suffix:String) | 检查是否有特定后缀 |
Int(String) | 转换字符串为整形 |
String.count | 计算字符串的长度 |
unicodeScalars | 可以遍历String值的这个属性来访问他的Unicode标量编码 |
字符
字符是单一的字符字符串字面量,数据类型为Character。
如果在字符类型的常量中存储更多的字符,程序会报错。
不能创建空的字符类型变量或常量。
遍历字符串中的字符
for ch in "Hello" {
print(ch)
}
字符串连接字符
使用append()方法实现连接。
var varA:String = "Hello "
let varB:Character = "G"
varA.append( varB )
数组
使用有序列表存储同一类型的多个值,相同的值可以多次出现。
如果创建一个数组并赋值给一个变量,则创建的集合就是可以修改的(可以增删改),如果赋值给常量,数组的大小和内容都不可更改。
创建数组
var someArray = [SomeType]()
//创建初始化大小数组
var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)
//类型为Int,数量为3,初始值为0的空数组
//不推荐
var someInts = [Int](repeating: 0, count: 3)
//含有3个元素的数组
//推荐
var someInts: [Int] = [10,20,30]
访问数组
可以根据数组的索引来访问数组的元素
var someVar = someArray[index]
修改数组
可以使用append()方法或者赋值运算符 += 在数组末尾添加元素
var someInts = [Int]()
someInts.append(20)
someInts += [30]
遍历数组
使用for-in循环。
如果要使用每个数据项的值和索引值,可以使用String的enumerate()方法进行数组遍历
for (index, item) in someStr.enumerated(){
print("在index = \(index)位置上的值为 \(item)")
}
合并数组
使用 + 来合并两种已存在的相同类型数组。