swift极简文档(2)数组与字典

原创 2017年08月03日 15:31:25

 

        array初始化和拼接

        

        创建

        var shopNumList = [Int]()

        var shopNumList2:[Int] = []

        var shopNumList3:Array<Int> = []

        var shopNumList4 = Array<Int>()

        print("someInts is of type [Int] with \(shopNumList.count) items.")

        打印 "someInts is of type [Int] with 0 items."

        

        拼接

        shopNumList.append(3)

        someInts 现在包含一个 Int

        shopNumList = []

        someInts 现在是空数组,但是仍然是 [Int] 类型的。

        

        


        var threeDoubles = Array(repeating: 0.0, count: 3)

        threeDoubles 是一种 [Double] 数组,等价于 [0.0, 0.0, 0.0],repreting:初始值

        

        var anotherThreeDoubles = Array(repeating: 2.5, count: 3)

        anotherThreeDoubles 被推断为 [Double],等价于 [2.5, 2.5, 2.5]


        组合拼接

        var sixDoubles = threeDoubles + anotherThreeDoubles

        sixDoubles 被推断为 [Double],等价于 [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]

        

        

        

        根据字面量直接创建

        var shoppingList: [String] = ["Eggs", "Milk","hehe"]  //等于 var shoppingList = ["Eggs", "Milk"]

        shoppingList 已经被构造并且拥有两个初始项。

        

        使用加法赋值运算符(+=)也可以直接在数组后面添加一个或多个拥有相同类型的数据项:

        

        shoppingList += ["Baking Powder"]

        shoppingList 现在有四项了

        shoppingList += ["Chocolate Spread", "Cheese", "Butter"]

        shoppingList 现在有6项了

        

        

        

        

        array访问和修改

        

        shoppingList = ["Eggs", "Milk"]

        

        print("The shopping list contains \(shoppingList.count) items.")

        输出 "The shopping list contains 2 items."(这个数组有2个项)

        

        

        使用布尔属性isEmpty作为一个缩写形式去检查count属性是否为0

        

        if shoppingList.isEmpty {

            print("The shopping list is empty.")

        } else {

            print("The shopping list is not empty.")

        }

        打印 "The shopping list is not empty."shoppinglist 不是空的)

        

        

        

        调用数组的insert(_:at:)方法来在某个具体索引值之前添加数据项:

        

        shoppingList.insert("Maple Syrup", at: 0)

        print("start array访问和修改")

        print(shoppingList)

        shoppingList 现在有3

        "Maple Syrup" 现在是这个列表中的第一项

        

        

        let mapleSyrup = shoppingList.remove(at: 0)

        print(shoppingList)

        print(mapleSyrup)

        索引值为0的数据项被移除

        shoppingList 现在只有2项,而且不包括 Maple Syrup

        mapleSyrup 常量的值等于被移除数据项的值 "Maple Syrup"

        

        let Milk = shoppingList.removeLast()

        print(shoppingList)

        print(Milk)

        print("end array访问和修改")


        数组的最后一项被移除了

        shoppingList 现在只有1项,不包括 Milk

        Milk 常量的值现在等于 "Milk" 字符串

        

        获取最小,最大值

        

        shoppingList.insert("hans", at: 0)

        shoppingList.insert("whaps", at: 0)

        shoppingList.insert("apple", at: 0)

        

        shoppingList.min() //1

        shoppingList.max()  //U

        

        

        包含

        shoppingList.contains("apple")

        shoppingList.contains("hehe")

        

        

        

        

        array遍历

        

        for item in shoppingList {

            print(item)

        }

        

        for (index, value) in shoppingList.enumerated() {

            print("Item \(String(index + 1)): \(value)")

        }

        

        

        

        

        

        

        

        dictionary使用

        

        var namesOfIntegers = [Int: String]()

        namesOfIntegers 是一个空的 [Int: String] 字典

        

        namesOfIntegers[16] = "sixteen"

        namesOfIntegers 现在包含一个键值对

        

        namesOfIntegers = [:]

        namesOfIntegers 又成为了一个 [Int: String] 类型的空字典

        

        根据字面量直接创建

        var airports1: [String: String] = ["airports1": "ch999", "airports2": "999ch"]

        

        var airports2 = ["airports1": "ch999", "airports2": "999ch"]

        

        

        访问和修改字典

        

        也可以用count

        print("The dictionary of airports contains \(airports1.count) items.")

        打印 "The dictionary of airports contains 2 items."(这个字典有两个数据项)


        

        使用布尔属性isEmpty作为一个缩写形式去检查count属性是否为0

        

        if airports1.isEmpty {

            print("The airports dictionary is empty.")

        } else {

            print("The airports dictionary is not empty.")

        }

        打印 "The airports dictionary is not empty."

        

        

        

        除了直接用下表,字典的updateValue(_:forKey:)方法可以设置或者更新特定键对应的值。updateValue(_:forKey:)方法在这个键不存在对应值的时候会设置新值或者在存在时更新已存在的值。和下标方法不同的是,updateValue(_:forKey:)这个方法返回更新值之前的原值。这样使得我们可以检查更新是否成功。

        

        updateValue(_:forKey:)方法会返回对应值的类型的可选值。举例来说:对于存储String值的字典,这个函数会返回一个String?或者可选 String”类型的值。

        

        如果有值存在于更新前,则这个可选值包含了旧值,否则它将会是nil

        

        if let oldValue = airports1.updateValue("hans", forKey: "airports1") {

            print("The old value for DUB was \(oldValue).")

        }

        输出 "The old value for DUB was Dublin."

        

        

        dictionary遍历

        

        for (airportCode, airportName) in airports1 {

            print("\(airportCode): \(airportName)")

        }

        

        for airportCode in airports1.keys {

            print("Airport code: \(airportCode)")

            print("Airport code: \(airports1[airportCode])")


        }

        

        

        for airportName in airports1.values {

            print("Airport name: \(airportName)")

        }

        

        如果我们只是需要使用某个字典的键集合或者值集合来作为某个接受Array实例的 API 的参数,可以直接使用keys或者values属性构造一个新数组:

        

        let airportCodes = [String](airports1.keys)

        airportCodes ["airports1", "airports2"]

        

        let airportNames = [String](airports1.values)

        airportNames ["hans", "999ch"]

        

        

        


相关文章推荐

Swift 学习笔记 2-简单值(变量、常量、数组、字典 )

一、变量      Swift的变量有如下几个特征:      1.var 开头定义变量      2.变量需要赋初值      3.打印时利用 \() 来打印 [ \()表示对()的内容进行计算 ]...
  • catch01
  • catch01
  • 2015年02月01日 13:48
  • 353

Swift基础2-数组、字典的介绍

上一篇博客向大家讲解了Swift中常量、变量和字符串,这篇再接着向大家介绍数组和字典这两个在OC中使用十分频繁的数据类型在Swift中的一些基本的使用方法。...

Swift3.0-字符串、数组、字典操作

Swift3.0-字符串、数组、字典操作 import Foundation /* * 1、字符串 */ print("1、字符串") //Swift语言中,字符串中可以加入任何语言文字的字符 ...

Swift学习之十一:数组与字典(Array and Dictionary are collection types)

[objc] view plaincopyprint? /* Swift 提供了两种集合类型,即数组(Array)和字典(Dictionary),存储值的集合    数组存储相同类型的顺...

swift学习笔记(一)(常量、变量、数据类型、字符串的拼接、数组、字典)

import Foundation print("wangshuai") // 1.var 变量 // 当指定一个变量的时候就不可以再指定了,比如 var a = 1 虽然修饰的a可...
  • iOS_Pop
  • iOS_Pop
  • 2016年01月22日 16:59
  • 1060

初窥Swift-01-(基本输出,值类型,字典,数组)

swift出来那么久了,不属于狂热分子,今天才开始看看传说中的swift。本人代码经验很一般,但接触过的语言不少:c-java-c#-js-c++-html-css-oc等等吧,对Apple的东西的印...

Swift数组、字典和集合

原文出自:标哥的技术博客 前言Swift语言提供Array、Set和Dictionary三种基本的集合类型用来存储集合数据。数组是有序的数据集;集合是无序无重复的数据集;而字典是无序的键值对数组集。S...

swift-学习之路,字典、数组、循环-控制流

swift-学习之路,字典、数组、循环-控制流

swift学习之数组、字典和字符串

数组、字典、字符串都比oc省略了“@”数组var arr:Array = [1,2,3,4] //遍历数组 for number in arr { print(number) } //数组增加...
  • wm9028
  • wm9028
  • 2016年08月24日 15:37
  • 410

swift资源库—3—字典/集合/数组

持续更新中,纯笔记记录哦~ 相关的代码需要的话,还请留邮箱,后续我会更新到github上~~ 这里是本人学习swift的系列文章,相关知识还请查看本人的其他文章 Swift语言提供Array、Se...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift极简文档(2)数组与字典
举报原因:
原因补充:

(最多只允许输入30个字)