Swift 语言提供Arrays、Sets和Dictionaries三种基本的集合类型用来存储集合数据。数组(Arrays)是有序数据的集。集合(Sets)是无序无重复数据的集。字典(Dictionaries)是无序的键值对的集。
1、数组的简单语法
// 创建一个空数组,指定数组存放元素类型NKUserModel
var userItems = [NKUserModel]()
// 创建NKUserModel对象userModel
let userModel = NKUserModel()
userModel.name = "用户名"
userModel.age = 23
userModel.acount = "783513327"
// 将userModel添加到数组中
userItems.append(userModel)
for userM in userItems {
print("--------\(userM.name)-----\(userM.age)-----\(userM.acount)")
// --------用户名-----23-----783513327
}
print("------------\(userItems.count)")
// ------------1
// 将userModel从数组userItems中删除
userItems.remove(at: userItems.index(of: userModel)!)
print("------------\(userItems.count)")
// ------------0
// 创建一个带有默认值的数组
var threeDoubles = Array(repeating: 0.0, count: 3)
for doubles in threeDoubles {
print("------------\(doubles)")
}
2、集合类型语法
集合(Set)用来存储相同类型并且没有确定顺序的值。当集合元素顺序不重要时或者希望确保每个元素只出现一次时可以使用集合而不是数组。
// 创建和构造一个空的集合
var letters = Set<Character>()
letters.insert("a")
/*
使用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).sorted()
// [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]
3、字典类型简化语法
字典是一种存储多个相同类型的值的容器。每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典
// 创建一个空字典
var dic = [String: Any]()
dic["name"] = "用户名"
dic["age"] = 23
dic["acount"] = "783513327"
// 遍历字典
for (key, value) in dic {
print("\(key): \(value)")
}
/*
name: 用户名
age: 23
acount: 783513327
*/
// removeValue(forKey:)方法也可以用来在字典中移除键值对(使用下标语法来通过给某个键的对应值赋值为nil来从字典里移除一个键值对)
dic.removeValue(forKey: "acount")
for (key, value) in dic {
print("\(key): \(value)")
}
/*
name: 用户名
age: 23
*/
网友评论