• swift学习之数组


      首先数组的定义:以有序的方式存储同样类型的值

    (1)数组的简写(shorthand)语法

    你能够通过Array<Element>,在这里,Element时数组存储元素的值的类型。也能够通过中括号来写[Element]

    (2)创建一个空数组

            var emptyArr = [Int]()(这里使用初始化方法创建一个Int型的空数组)
            emptyArr.append(3)
            emptyArr = [] (这里是用字面语句创建空数组)
    note:emptyArr is now an empty array,but is still an type of [Int]

    另外,就是我直接用var emptyArr = []创建一个空数组会产生一个错误,报了这是一个不可变数组,大家能够试试

    (3)创建一个带有默认值的数组

    swift提供了一种初始化一个数组。而且这个数组带有同样的默认值

        var defaultArr = [Double](count: 3, repeatedValue: 0.0)(值类型是double型的)
        println(defaultArr)

    //the println is [0.0, 0.0, 0.0]

    (4)通过add两个数组创建一个新的数组

    通过(+)号操作将两个已经存在的同样类型的数组创建一个新的数组

            var anotherArr = [Double](count: 3, repeatedValue: 2.5)
            var newArr = defaultArr + anotherArr
            println(newArr)

    //the result is [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]

    (5)用字面量创建一个数组

    中括号中面放一系列的值,以逗号分隔

            var shopping:[String] = ["Eggs","Milk"]

    这个声明了一个仅仅存储字符型的数组,由swift的类型判断,我们能够不用写明类型用字面量语法初始化数组存放同样类型的值时,因此,上面的样例能够更加简单点写

           var shopping: = ["Eggs","Milk"]

    (6)訪问和改变数组

    我们学会了创建一个数组,那么接下来就要想怎么訪问一个数组,又怎么改变一个数组呢?

    訪问和改变数组,我们能够通过方法和属性,或者下标语法

    我们能够通过数组的仅仅读属性(.count)知道数组的元素个数

            println("The shopping list contains (shoppingList.count) items")    (The shopping list contains 2 items)

    我们能够通过数组的Boolen属性(.isEmpty)检查数组的个数和0是否相等

    if shoppingList.isEmpty{
                println("The shopping list is empty")
            }else{
                println("The shopping list isn't empty")
            }

    我们能够通过array's append(_:)方法在数组的最后面加入元素

            shoppingList.append("Flour")
            println(shoppingList)       ([Eggs, Milk, Flour])

    另一种方法。我们也能够通过(+=)操作加入一个或多个元素

            shoppingList += ["Baking Powder"]
            shoppingList += ["Chocolate Spread","Cheese","Butter"]
            println(shoppingList)  ([Eggs, Milk, Flour, Baking Powder, Chocolate Spread, Cheese, Butter])

    能够通过下标语法检索一个数组的值,在数组名后面加上中括号。在里面写上你想要的值所在的下标就能够取出相应的下标值了,和oc一样。第一个元素也是从0開始算起

           var firstItem = shoppingList[0]
            println(firstItem)  (firstItem is equal to "Eggs")

    你也能够通过下标语法改变相应索引处的值

            shoppingList[0] = "Six Eggs"
            println(shoppingList)   ([Six Eggs, Milk, Flour, Baking Powder, Chocolate Spread, Cheese, Butter])和上面对照确实改变了第一个元素

    在swift中能够通过下标语法改变一定范围的值,即使替代的值的长度和你替代的范围长度不同,如

            shoppingList[4...6] = ["Bananas","Apples"]
            println(shoppingList)

    如今打印的结果是[Six Eggs, Milk, Flour, Baking Powder, Bananas, Apples]也就是数组有6个元素

            shoppingList[4...6] = ["Bananas","Apples","Bananas","Apples"]

    如今数组有8个元素了

    可是请注意你不能通过下标语法给数组加入元素

    往数组中插入元素我们能够通过调用insert(_:atIndex:)方法

            shoppingList.insert("Maple Syrup", atIndex: 0)
            println(shoppingList)      ([Maple Syrup, Six Eggs, Milk, Flour, Baking Powder, Bananas, Apples, Bananas, Apples])

    相同的道理,能够通过调用removeAtIndex(_:)方法移除元素。而且能够接收被移除的元素(假如你不须要。就不用接收,直接忽略就好了)

            var removedItem = shoppingList.removeAtIndex(0)
            println(shoppingList)    ([Six Eggs, Milk, Flour, Baking Powder, Bananas, Apples, Bananas, Apples])

    调用removeRange移除一定范围内的数组

            var removedRangeItem: () = shoppingList.removeRange(6...7)
            println(shoppingList)      ([Six Eggs, Milk, Flour, Baking Powder, Bananas, Apples])

    调用removeLast()语法移除数组最后一个元素。而不是通过调用removeAtIndex(_:)方法。以免遍历数组一遍要

            shoppingList.removeLast()
            println(shoppingList)

    数组的遍历

    我们能够通过for-in循环遍历

            println(shoppingList)
            for item in shoppingList{
                println(item)
    (Six Eggs
    Milk
    Flour
    Baking Powder
    Bananas)
            }

    假设你须要每一个元素的下标和相应的值,你须要用enumerate()方法来遍历数组,这样返回一个元组,包含元素的下标和相应的值

    for (index,value) in enumerate(shoppingList){
                println("Item(index):(value)")
            }

    Item0:Six Eggs
    Item1:Milk
    Item2:Flour
    Item3:Baking Powder
    Item4:Bananas
    这是swift2.0之前的写法,2.0之后用的是

            for (index,value) in shoppingList.enumerate(){
                println("Item(index):(value)")
            }

    这种方法


    借鉴:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-ID105   

  • 相关阅读:
    5分钟造出好记又难猜的密码!
    拯救你的文档 – 【DevOps敏捷开发动手实验】开源文档发布
    VSALM 动手实验
    #VSTS日志# TFS 2015 Update 2 RC2新功能
    用户故事驱动的敏捷开发 – 1. 规划篇
    精益软件开发与精益管理:从一家关闭的汽车厂重焕青春说起
    创建用户故事地图(User Story Mapping)的8个步骤
    用户故事地图(User Story Mapping)之初体验
    (视频) 基于HTML5的服务器远程访问工具
    比较php字符串连接的效率
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6962239.html
Copyright © 2020-2023  润新知