您的位置:首页 > 移动开发 > Swift

Swift--数组(二)

2014-06-21 13:49 106 查看
数组的遍历

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

1. for item in shoppingList {

2. println(item)

3. }

4. // Six eggs

5. // Milk

6. // Flour

7. // Baking Powder

8. // Bananas

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

1. for (index, value) in enumerate(shoppingList) {

2. println("Item \(index + 1): \(value)")

3. }

4. // Item 1: Six eggs

5. // Item 2: Milk

6. // Item 3: Flour

7. // Item 4: Baking Powder

8. // Item 5: Bananas

创建并且构造一个数组

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

1. var someInts = Int[]()

2. println("someInts is of type Int[] with \(someInts。count) items。")

3. // 打印 "someInts is of type Int[] with 0 items。"(someInts是0数据项的Int[]数组)

注意 someInts 被设置为一个 Int[]构造函数的输出所以它的变量类型被定义为 Int[]。 除此之外,如果代码上下文中提供了类型信息, 例如一个函数参数或者一个已经定义好类型的常量或者变量,我们可以使用空数组语句创建一个空数组,它的写法很简单:[](一对空方括号):

1. someInts.append(3)

2. // someInts 现在包含一个 INT值

3. someInts = []

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

Swift 中的 Array 类型还提供一个可以创建特定大小并且所有数据都被默认的构造方法。我们可以把准备加入新数组的数据项数量(count)和适当类型的初始值(repeatedValue)传入数组构造函数:

1. var threeDoubles = Double[](count: 3, repeatedValue:0.0)

2. // threeDoubles 是一种 Double[]数组, 等于 [0.0, 0.0, 0.0]

因为类型推断的存在,我们使用这种构造方法的时候不需要特别指定数组中存储的数据类型,因为类型可以从默认值推断出来:

1. var anotherThreeDoubles = Array(count: 3, repeatedValue: 2.5)

2. // anotherThreeDoubles is inferred as Double[], and equals [2.5, 2.5, 2.5]

最后,我们可以使用加法操作符(+)来组合两种已存在的相同类型数组。新数组的数据类型会被从两个数组的数据类型中推断出来:

1. var sixDoubles = threeDoubles + anotherThreeDoubles

2. // sixDoubles 被推断为 Double[], 等于 [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: