- swift 提供了array,set, dictionary 等三个收藏类型。
- 创建一个空数组 array:就是数组
var someInts = [Int]()
print("数组里有\(someInts.count)个元素")
//会打印数组里有0个元素
someInts.append(7)
//现在someInts包含了一个值
someInts = []
//现在它是一个空数组了,他的类型也是依然int
创建有默认值得数组
swift 有一个数组初始化器,他能创建特定大小的数组
var threeDoubles = Array(repeatElement(7.7, count: 3))
//两个特定的数组还可以相加
var anotherThreeDoubles = Array(repeatElement(3.3, count: 3))
var sixDoubles = threeDoubles + anotherThreeDoubles
字符串数组
var shoppingList: [String] = ["Eggs","Milik"]
var list = ["book" ,"12"]
//下面代码可以简写数组
var shoppingList1 = ["apple","orange","banana"]
访问和修改数组
//count 能查找数组中的项目数
print("shoppinglist 数组有\(shoppingList.count)项目")
//数组是不是等于零的检查方式
if shoppingList.isEmpty{
print("no one")
}else{
print("数组不是空的")
}
//如果我想添加一个新成员的话会调用append(_:)注意他会添加到最后一个位置
shoppingList.append("phone")
//我还可以 += 来添加新成员
shoppingList += ["beer"]
索引来修改数组的值
shoppingList[0] = "hony"
//如果想特定的位置加成员,我想位置1 和 2的成员改掉
shoppingList[1...2] = ["butter","beef"]
//我要插进去一个成员的话呢用这个方法
shoppingList.insert("coffe", at: 3)
shoppingList.insert("tea", at: 3)
//相反remove(at:)方法来删掉特定位置的成员
shoppingList.remove(at: 3)
shoppingList.removeLast()
shoppingList.count
//for item in array 是遍历整个数组的
for nl_item in shoppingList{
print(nl_item)
}
set 集合
//set 存储没有特定循序的,相同类型的不同的值
//创建和初始化一个空集
var letters = Set<Character>()
print("\(letters.count)")
//会打印零
letters.insert("m")
letters = []
//现在集又空了 ,属性依然是Set<Character>
创建一个字符串的集合
//var favoriteGenres: Set<String> = ["rock","hiphop","classical"]
//可以简写
var favoriteGenres: Set = ["rock","hiphop","classical"]
let oddDigits: Set = [1,3,5,7,9]
let evenDigits: Set = [0,2,4,6,8]
let singleDigitNumber: Set = [2,3,5,7]
oddDigits.union(evenDigits).sorted()
//最后的sorted()方法将排序集合元祖如果把它删除不会报错就是没有循序
//intersection 中文意思:交叉;十字路口;交集;交叉点 它就是交集!
oddDigits.intersection(evenDigits).sorted()
// subtracting:差集
oddDigits.subtracting(evenDigits).sorted()
字典
- 创建一 个空字典
//其实他也与数组一样
var namesOfinteger = [Int: String]()
//上面一行代码可以这麼理解:我要顶一个字典,他key的类型是int,value的类型是string
namesOfinteger[27] = "is my age"
//下面这一行代码是空字典
namesOfinteger = [:]
- 创建一个字符串字典
//[key1:value1, key2: value2, key3: value3]
//var airports: [String: String] = ["0998" : "喀什","0991":"乌鲁木齐","0995":"吐鲁番"]
//上面代码中数组是地区号
//简写的话可以这么些
var airports = ["0998" : "喀什","0991":"乌鲁木齐","0995":"吐鲁番"]
访问和修改字典
- 数组一样用count 来查找其中的item数
print("the air ports dictionary contains \(airports.count) item")
//同样适用isEmptyE来检查是否空
if airports.isEmpty{
print("the airport dictionary is empty.")
}else{
print("the airport dictionary is not empty .")
}
//你拿字典的key 修改它的值
airports["0998"] = "喀什人民欢迎你"
if let oldValue = airports.updateValue("乌鲁木齐人民欢迎你", forKey: "0991"){
print("the old value for 乌鲁木齐 was\(oldValue)")
}
//if let airportName = airports["0991"]{
// print("the name of the airport is \(airportName)")
//}
- 你可以遍历字典的每一个key和value
for (airportCode,airportName) in airports{
print("\(airportCode):\(airportName)")
}
for airportCode in airports.keys{
print("airportCode: \(airportCode)")
}
for airportName in airports.values{
print("airportName:\(airportName)")
}
初始化
let airportCode1 = [String](airports.keys)
let airportName1 = [String](airports.values)
print(airportCode1)
print(airportName1)