美文网首页
swift4 收藏类型

swift4 收藏类型

作者: Mr__Robot | 来源:发表于2017-09-18 00:37 被阅读0次
    • 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)
    

    相关文章

      网友评论

          本文标题:swift4 收藏类型

          本文链接:https://www.haomeiwen.com/subject/wdkvsxtx.html