// 数组 // shoppingList变量被声明为“字符串值类型的数组“,记做[String]。 由于这个数组被规定只有String一种数据结构,因此只有String类型能够在其中被存取。 在这里,shoppinglist数组由两个String值("Eggs" 和"Milk")构造,而且由字面量定义 var shopingList:[String] = ["Eggs","Milk"]; //因为 Swift 的类型推断机制,当咱们用字面量构造只拥有相同类型值数组的时候,咱们没必要把数组的类型定义清楚。 shoppinglist的构造也能够这样写 var shopingList2 = ["Eggs","Milk"]; // 访问和修改数组 // 使用数组的只读属性count来获取数组中的数据项数量 println("一共存在 \(shopingList.count) 个商品") // 检查是否为空 if shopingList2.isEmpty { println("数组为空") }else{ println("数组不为空") } // 可使用append方法在数组后面添加新的数据项 shopingList2.append("Dog") // 除此以外,使用加法赋值运算符(+=)也能够直接在数组后面添加一个或多个拥有相同类型的数据项 shopingList2 += ["M"] // 经过下标获取值 shopingList2[0] // 经过下标来修改值 shopingList2[0] = "eGGS" // 改变多个值 // 从下标1至下标三,替换为赋值的值 shopingList2[1...3] = ["Enda","Yuan"] // 调用数组的insert(atIndex:)方法来在某个具体索引值以前添加数据项 shopingList2.insert("Chaina", atIndex:3) // 使用removeAtIndex方法来移除数组中的某一项 shopingList2.removeAtIndex(1) // 移除最后一项 使用 removeLast shopingList2.removeLast() // 数组遍历 for item in shopingList2{ println(item) } // 加上索引遍历 // 若是咱们同时须要每一个数据项的值和索引值,可使用全局enumerate函数来进行数组遍历。enumerate返回一个由每个数据项索引值和数据值组成的元组。咱们能够把这个元组分解成临时常量或者变量来进行遍历 for (index,value) in enumerate(shopingList2){ println("index:\(index) value:\(value)") } shopingList2 // 咱们可使用构造语法来建立一个由特定数据类型构成的空数组 var someInt = [Int]() someInt.append(3) someInt someInt = [] // someInts 如今是空数组,可是仍然是[Int]类型的 // Swift 中的Array类型还提供一个能够建立特定大小而且全部数据都被默认的构造方法。咱们能够把准备加入新数组的数据项数量(count)和适当类型的初始值(repeatedValue)传入数组构造函数 var threeDoubles = [Double](count: 3, repeatedValue:0.0) threeDoubles // 由于类型推断的存在,咱们使用这种构造方法的时候不须要特别指定数组中存储的数据类型,由于类型能够从默认值推断出来 var another = Array(count:3,repeatedValue:2.5) // 最后,咱们可使用加法操做符(+)来组合两种已存在的相同类型数组。新数组的数据类型会被从两个数组的数据类型中推断出来: var sixDoubles = threeDoubles + another