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"]

        

        

        


《Spring Boot极简教程》第1章 Spring Boot史前简述

第1章 Spring Boot史前简史 大约20年前,程序员们使用“企业级Java Bean”(EJB)开发企业应用,需要配置复杂的XML。 在二十世纪初期,新兴Java技术——Spring,横空出...
  • universsky2015
  • universsky2015
  • 2017年09月13日 14:26
  • 158

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

/* Swift 提供了两种集合类型,即数组(Array)和字典(Dictionary),存储值的集合 数组存储相同类型的顺序列表值。字典存储无序同类型值的集合,通过键来查询和 引用。 ...
  • woaifen3344
  • woaifen3344
  • 2014年06月09日 08:20
  • 15443

swift 字典和数组

1,字典 - Dictionary(即键值对) var empty = [String: Int]() //建立个空字典 var myDic = ["name":"hangge", ...
  • robinson_911
  • robinson_911
  • 2016年05月09日 20:34
  • 1050

swift 之 数组集合字典的简单使用

//: Playground - noun: a place where people can play import UIKit //有序集合 var str = "H...
  • ren_shi_qian
  • ren_shi_qian
  • 2016年06月26日 11:04
  • 1572

超全面指南!从零开始教你打造网页设计中的极简风格

什么是极简设计 极简设计,严格上讲不能算作一种视觉风格,而是一种设计哲学。它在保持了基本的骨架内容的基础上,剔除掉多余的元素、装饰、色彩和纹理,是通过不断思考而进行化繁为简的设计过程。这样做的结果是...
  • vanessary2016
  • vanessary2016
  • 2016年04月06日 16:47
  • 541

《Kotlin极简教程》

下载地址
  • qq_34476727
  • qq_34476727
  • 2017年09月29日 11:11
  • 429

git极简教程

简介: Git是一个自由和开源的分布式版本控制系统,设计用于处理从小到大型项目的速度和效率。它的一个非常重要的功能便是协同开发。1.安装git下载地址:https://git-scm.com/down...
  • yasin27878
  • yasin27878
  • 2017年02月28日 17:43
  • 88

读书笔记6《极简》 Joshua Becker 乔舒亚-贝克尔

越简单,越美好
  • m0_37890694
  • m0_37890694
  • 2017年03月16日 16:58
  • 789

谈谈我对极简主义的看法

其实刚开始接触到极简主义是在知乎上,当时看到一张图,是一个答主拍的自己的房间,房间简洁到极致,床,桌子,电脑,衣架,一切显得干净而利落。于是觉得突然就觉得极简主义真他妈好啊,简而有序,带着一种特殊的美...
  • code_vs
  • code_vs
  • 2017年08月09日 23:34
  • 344

swift之创建数组,字典及其一些用法

对于Swift而言,创建数组和OC大致是一样的,我们可以直接用方括号来告诉系统,我要创建数组了啊,你得识别我啊,而字典就有所不同了,在OC中是大括号,但是在Swift中也是中括号,看下边的例子: va...
  • baidu_31683691
  • baidu_31683691
  • 2016年11月05日 23:31
  • 1298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift极简文档(2)数组与字典
举报原因:
原因补充:

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