美文网首页
Swift-数组(Arrays)

Swift-数组(Arrays)

作者: R_yan | 来源:发表于2017-01-10 18:55 被阅读1686次

    本文属个人笔记,不做详解,仅供参考
    参考文章:http://www.swift51.com/swift.html

    数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。

    注意: Swift 的Array类型被桥接到Foundation中的NSArray类。 更多关于在Foundation和Cocoa中使用Array的信息,参见 Using Swift with Cocoa and Obejective-C 一书。

    数组的简单语法

    写 Swift 数组应该遵循像 Array<Element>这样的形式,其中 Element是这个数组中唯一允许存在的数据类型。我们也可以使用像 [Element]这样的简单语法。尽管两种形式在功能上是一样的,但是推荐较短的那种,而且在本文中都会使用这种形式来使用数组。

    数组的创建

    我们可以使用构造语法来创建一个由特定数据类型构成的空数组:

    var someInts = [Int]()
    print("someInts is of type [Int] with \(someInts.count) items.")
    // 打印 "someInts is of type [Int] with 0 items."
    

    注意,通过构造函数的类型,someInts的值类型被推断为[Int]。

    或者,如果代码上下文中已经提供了类型信息,例如一个函数参数或者一个已经定义好类型的常量或者变量,我们可以使用空数组语句创建一个空数组,它的写法很简单:[](一对空方括号):

    someInts.append(3)
    // someInts 现在包含一个 Int 值
    someInts = []
    // someInts 现在是空数组,但是仍然是 [Int] 类型的。
    

    访问和修改数组

    我们可以通过数组的方法和属性来访问和修改数组,或者使用下标语法。
    可以使用数组的只读属性count来获取数组中的数据项数量:

    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 不是空的)
    

    也可以使用append(_:)方法在数组后面添加新的数据项:

    shoppingList.append("Flour")
    // shoppingList 现在有3个数据项,有人在摊煎饼
    

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

    shoppingList += ["Baking Powder"]
    // shoppingList 现在有四项了
    shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
    // shoppingList 现在有七项了
    

    可以直接使用下标语法来获取数组中的数据项,把我们需要的数据项的索引值放在直接放在数组名称的方括号中:

    var firstItem = shoppingList[0]
    // 第一项是 "Eggs"
    

    数组的遍历

    我们可以使用for-in循环来遍历所有数组中的数据项:

    for item in shoppingList { 
    print(item)
    }
    // Six eggs
    // Milk
    // Flour
    // Baking Powder
    // Bananas
    

    如果我们同时需要每个数据项的值和索引值,可以使用 enumerate()方法来进行数组遍历。 enumerate()返回一个由每一个数据项索引值和数据值组成的元组。我们可以把这个元组分解成临时常量或者变量来进行遍历:

    for (index, value) in shoppingList.enumerate() { 
    print("Item \(String(index + 1)): \(value)")
    }
    // Item 1: Six eggs
    // Item 2: Milk
    // Item 3: Flour
    // Item 4: Baking Powder
    // Item 5: Bananas
    

    数组的应用

    数组去重

    var array = [String]()
    let result = Array(Set(array))
    

    获取指定元素在数组中的位置

    let index = array.indexOf(“XX”)
    

    删除指定位置元素

    array.removeAtIndex(index)
    

    创建重复数组

    array = Array.init(count:重复次数, repeatedValue:值)
    

    数组与字符串互转:
    String->Array

    let str = “sh,dfbg,e,f,v,vfgrt”
    let strArray =str.componentsSeparatedByString(“,”)
    

    Array->String

    let strArray = [“a”,”b”,”c”]
    let str = strArray.joinWithSeparator(“,”)
    

    相关文章

      网友评论

          本文标题:Swift-数组(Arrays)

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