1.Strings and Characters
字符串字面量的特殊符号:
转义字符 \0(空字符)、\(反斜线)、\t(水平制表符)、\n(换行符)、\r(回车符)、"(双引号)、’(单引号)。
Unicode 标量,写成 \u{n}(u 为小写),其中 n 为任意一到八位十六进制数且可用的 Unicode 位码。
字符串是值类型
每一个 Swift 的 Character 类型代表一个可扩展的字形群。而一个可扩展的字形群构成了人类可读的单个字符,它由一个或多个(当组合时) Unicode 标量的序列组成。
使用可拓展的字符群集作为 Character 值来连接或改变字符串时,并不一定会更改字符串的字符数量。
字符串索引:
(1)使用 startIndex 属性可以获取一个 String 的第一个 Character 的索引。使用 endIndex 属性可以获取最后一个 Character 的后一个位置的索引。
(2)通过调用 String 的 index(before:) 或 index(after:) 方法,可以立即得到前面或后面的一个索引。
(3)通过调用 index(:offsetBy:) 方法来获取对应偏移量的索引,这种方式可以避免多次调用 index(before:) 或 index(after:) 方法.
(4)使用 indices 属性会创建一个包含全部索引的范围(Range),用来在一个字符串中访问单个字符
字符串插入和删除:
调用 insert(:at:) 方法可以在一个字符串的指定索引插入一个字符,调用 insert(contentsOf:at:) 方法可以在一个字符串的指定索引插入一个段字符串。
调用 remove(at:) 方法可以在一个字符串的指定索引删除一个字符,调用 removeSubrange(😃 方法可以在一个字符串的指定索引删除一个子字符串。
通过调用字符串的 hasPrefix(😃/hasSuffix(_😃 方法来检查字符串是否拥有特定前缀/后缀,两个方法均接收一个 String 类型的参数,并返回一个布尔值。
2.Collection Types:Arrays, Sets, Dictionaries
Swift 语言提供数组(Array)、集合(Set)和字典(Dictionary)三种基本的集合类型用来存储集合数据。数组是有序数据的集。集合是无序无重复数据的集。字典是无序的键值对的集。
数组方法:
count,isEmpty,append,insert,remove
移除最后一项:removeLast()避免需要获取数组的 count 属性
使用 enumerated() 方法来进行数组遍历
集合中的类型必须都是可哈希化的
集合的操作:
使用 intersection( _ : ) 方法根据两个集合的交集创建一个新的集合。
使用 symmetricDifference( _ : ) 方法根据两个集合不相交的值创建一个新的集合。
使用 union( _ : ) 方法根据两个集合的所有值创建一个新的集合。
使用 subtracting( _ : ) 方法根据不在另一个集合中的值创建一个新的集合。
集合关系:
使用“是否相等”运算符(==)来判断两个集合包含的值是否全部相同。
使用 isSubset(of:) 方法来判断一个集合中的所有值是否也被包含在另外一个集合中。
使用 isSuperset(of:) 方法来判断一个集合是否包含另一个集合中所有的值。
使用 isStrictSubset(of:) 或者 isStrictSuperset(of:) 方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用 isDisjoint(with:) 方法来判断两个集合是否不含有相同的值(是否没有交集)。
字典:
为了以特定的顺序遍历字典的键或值,可以对字典的 keys 或 values 属性使用 sorted() 方法。