Swift--数组(二)

数组的遍历 
我们可以使用 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]  
发布了25 篇原创文章 · 获赞 0 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章