swift文档笔记(四) -- 集合类型
2018-01-13 09:35
507 查看
Swift 语言提供 Arrays
、 Sets
和 Dictionaries
三种基本的 合类型用来存储
合数据。数组(Arrays)是有序
数据的
。集合(Sets)是无序无重复数据的
。字典(Dictionaries)是无序的键值对的
。
1.数组
创建空数组
var someInts = [Int]()
var someInts = Array<Int>
()
创建一个带有默认值的数组
var threeDoubles = Array(repeating: 0.0, count: 3)
var shoppingList: [String] =
["Eggs", "Milk"]
访问和修改数组
可以使用数组的只读属性 count
来获取数组中的数据项数量:
使用布尔属性 isEmpty
作为一个缩写形式去检查 count
属性是否为 0 :
使用 append(_:)
方法在数组后面添加新的数据项:
使用加法赋值运算符( +=
)也可以直接在数组后面添加一个或多个拥有相同类型的数据项:
使用下标语法来获取数组中的数据项
var firstItem = shoppingList[0]
可以用下标来改变某个已有索引值对应的数据值:
shoppingList[0] = "Six eggs"
调用insert(_:at:)
方法来在某个具体索引值之前添加数据项:
使用 remove(at:)
方法来移除数组中的某一项。
数组的遍历
如果我们同时需要每个数据项的值和索引值,可以使用 enumerated()
方法来进行数组遍历。 enumerated()
返回 一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历:
for (index, value) in shoppingList. enumerated()
{
print("Item \(String(index + 1)):
\(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
2.集合
集合用得较少,而且用法与数组大同小异,主要讲记录集合的一些操作
使用 intersection(_:)
方法根据两个
合中都包含的值创建的一个新的集合。
使用 symmetricDifference(_:)
方法根据在一个
合中但不在两个 合中的值创建一个新的集合。
使用 union(_:)
方法根据两个
合的值创建一个新的集合。
使用 subtracting(_:)
方法根据不在该
合中的值创建一个新的集合。
let oddDigits: Set =
[1, 3, 5, 7,
9]
let evenDigits: Set =
[0, 2, 4, 6,
8]
let singleDigitPrimeNumbers: Set =
[2, 3, 5, 7]
oddDigits.union(evenDigits).sort()
// [0, 1, 2,
3, 4, 5, 6,
7, 8, 9]
oddDigits. intersection(evenDigits).sorted()
// []
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()
// [1, 9]
oddDigits. symmetricDifference(singleDigitPrimeNumbers).sorted()
// [1, 2, 9]
使用“是否相等”运算符( ==
)来判断两个集合是否包含全部相同的值。
使用 isSubset(of:)
方法来判断一个集合中的值是否也被包含在另外一个集合中。
使用 isSuperset(of:)
方法来判断一个集合中包含另一个集合中所有的值。
使用 isStrictSubset(of:)
或者 isStrictSuperset(of:)
方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用 isDisjoint(with:)
方法来判断两个集合是否不含有相同的值(是否没有交集)。
3.字典
字典是一种存储多个相同类型的值的容器。每个值(value)都关联唯一的键(key),键作为字典中的这个值数
据的标识符。
创建一个空字典
var namesOfIntegers = Int: String
var namesOfIntegers = Dictionary<Int: String>()
创建一个带有默认值的字典
var airports: [String: String] =
["YYZ": "Toronto Pearson", "DUB": "Dublin"]
var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
访问和修改字典
使用布尔属性 isEmpty
作为一个缩写形式去检查 count
属性是否为 0 :
我们可以在字典中使用下标语法来添加新的数据项,
改变特定键对应的值。
字典的 updateValue(_:forKey:)
方法可以设置或者更新特定键对应的值。这个方法返回更新值之前的原值。
使用下标语法来通过给某个键的对应值赋值为 nil
来从字典里移除一个键值对。
使用removeValue(forKey:)
方法也可以用来在字典中移除键值对。这个方法返回移除值之前的原值。
字典遍历
for (airportCode, airportName) in airports {
}
通过访问 或者
属性,我们也可以遍历字典的键或者值:
for airportCode in airports.keys {
}
for airportName in airports.values {
}
、 Sets
和 Dictionaries
三种基本的 合类型用来存储
合数据。数组(Arrays)是有序
数据的
。集合(Sets)是无序无重复数据的
。字典(Dictionaries)是无序的键值对的
。
1.数组
创建空数组
var someInts = [Int]()
var someInts = Array<Int>
()
创建一个带有默认值的数组
var threeDoubles = Array(repeating: 0.0, count: 3)
var shoppingList: [String] =
["Eggs", "Milk"]
访问和修改数组
可以使用数组的只读属性 count
来获取数组中的数据项数量:
使用布尔属性 isEmpty
作为一个缩写形式去检查 count
属性是否为 0 :
使用 append(_:)
方法在数组后面添加新的数据项:
使用加法赋值运算符( +=
)也可以直接在数组后面添加一个或多个拥有相同类型的数据项:
使用下标语法来获取数组中的数据项
var firstItem = shoppingList[0]
可以用下标来改变某个已有索引值对应的数据值:
shoppingList[0] = "Six eggs"
调用insert(_:at:)
方法来在某个具体索引值之前添加数据项:
使用 remove(at:)
方法来移除数组中的某一项。
数组的遍历
如果我们同时需要每个数据项的值和索引值,可以使用 enumerated()
方法来进行数组遍历。 enumerated()
返回 一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历:
for (index, value) in shoppingList. enumerated()
{
print("Item \(String(index + 1)):
\(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
2.集合
集合用得较少,而且用法与数组大同小异,主要讲记录集合的一些操作
使用 intersection(_:)
方法根据两个
合中都包含的值创建的一个新的集合。
使用 symmetricDifference(_:)
方法根据在一个
合中但不在两个 合中的值创建一个新的集合。
使用 union(_:)
方法根据两个
合的值创建一个新的集合。
使用 subtracting(_:)
方法根据不在该
合中的值创建一个新的集合。
let oddDigits: Set =
[1, 3, 5, 7,
9]
let evenDigits: Set =
[0, 2, 4, 6,
8]
let singleDigitPrimeNumbers: Set =
[2, 3, 5, 7]
oddDigits.union(evenDigits).sort()
// [0, 1, 2,
3, 4, 5, 6,
7, 8, 9]
oddDigits. intersection(evenDigits).sorted()
// []
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()
// [1, 9]
oddDigits. symmetricDifference(singleDigitPrimeNumbers).sorted()
// [1, 2, 9]
使用“是否相等”运算符( ==
)来判断两个集合是否包含全部相同的值。
使用 isSubset(of:)
方法来判断一个集合中的值是否也被包含在另外一个集合中。
使用 isSuperset(of:)
方法来判断一个集合中包含另一个集合中所有的值。
使用 isStrictSubset(of:)
或者 isStrictSuperset(of:)
方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用 isDisjoint(with:)
方法来判断两个集合是否不含有相同的值(是否没有交集)。
3.字典
字典是一种存储多个相同类型的值的容器。每个值(value)都关联唯一的键(key),键作为字典中的这个值数
据的标识符。
创建一个空字典
var namesOfIntegers = Int: String
var namesOfIntegers = Dictionary<Int: String>()
创建一个带有默认值的字典
var airports: [String: String] =
["YYZ": "Toronto Pearson", "DUB": "Dublin"]
var airports = ["YYZ": "Toronto Pearson", "DUB": "Dublin"]
访问和修改字典
使用布尔属性 isEmpty
作为一个缩写形式去检查 count
属性是否为 0 :
我们可以在字典中使用下标语法来添加新的数据项,
改变特定键对应的值。
字典的 updateValue(_:forKey:)
方法可以设置或者更新特定键对应的值。这个方法返回更新值之前的原值。
使用下标语法来通过给某个键的对应值赋值为 nil
来从字典里移除一个键值对。
使用removeValue(forKey:)
方法也可以用来在字典中移除键值对。这个方法返回移除值之前的原值。
字典遍历
for (airportCode, airportName) in airports {
}
通过访问 或者
属性,我们也可以遍历字典的键或者值:
for airportCode in airports.keys {
}
for airportName in airports.values {
}
相关文章推荐
- swift官方推荐翻译文档之集合类型
- swift文档笔记(十五) -- 类型转换
- Swift 学习笔记 [1] 类型 值 集合 函数 闭包
- Swift 集合类型(Collection Type) 之 数组(array)(官方文档翻译及总结)
- Swift学习笔记4——集合类型
- Swift4学习笔记4——集合类型
- Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)
- Swift 集合类型(Collection Type) 之 set(官方文档翻译及总结)
- Welcome to Swift (苹果官方Swift文档初译与注解二十三)---154~162页(第三章--集合类型)
- Swift 笔记 (四) —— 集合类型
- Welcome to Swift (苹果官方Swift文档初译与注解二十二)---148~153页(第三章--集合类型)
- Swift中内置的集合类型学习笔记
- Swift学习笔记(二)字符串和集合类型操作
- Swift 集合类型(笔记)
- Swift 3.0 学习笔记-3-集合类型
- swift学习笔记(4)-集合类型
- 简读The Swift Programming Language官方文档--集合类型
- Swift学习笔记 - 教程学习三 集合类型 (Collection Types)
- Welcome to Swift (苹果官方Swift文档初译与注解二十一)---140~147页(第三章--集合类型)
- The Swift Programming Language--语言指南--集合类型