swift4 收藏类型

  • 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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由苹果官网翻译得来fork自https://github.com/letsswift/The-Swift-Prog...
    佛祖拿屠刀阅读 450评论 0 1
  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,173评论 0 4
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • 面临毕业,最后的我们,也是最无助的我们。 都说在大学要谈一场恋爱,因为进入社会你会发现再也没有上学时谈的恋爱纯真,...
    独独独角兽阅读 202评论 0 0
  • 美国野外纪录片《荒野求生》当中的主角-贝爷,一个号称生活在食物链最顶端的男人,靠着掌握的众多野外生存知识和技...
    番薯都督阅读 283评论 0 2