Swift教程之集合类型详解,Swift的数组和字典

遍历数组

可以使用for-in循环来遍历数组中的值

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

如果需要每一个元素的整形的索引值,使用enumerate函数代替会更方便,enumerate函数对于每一个元素都会返回一个包含元素的索引和值的元组(tuple)。你可以在遍历部分分解元祖并储存在临时变量或者常量中。

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

如需更多for-in 循环信息, 参见 For Loops.

创建和初始化数组
创建一个空的数组和确定的类型(不包含初始化值)使用的初始化语法:

var someInts = Int[]()
println("someInts is of type Int[] with (someInts.count) items.")
// prints "someInts is of type Int[] with 0 items.”

注意,someInt变量被确定为Int[],因为它使用生成Int[]的初始化方法。

或者,如果上下文(context)已经提供类型信息,例如函数参数或者已经确定类型的常量和变量,你可以从空的数组实量(Array Literals)创建一个空数组,写作[](空的中括号对)。

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

Swift数组类型也提供初始化方法来创建确定长度和提供默认数值的数组。你可以通过这个初始化方法增加一个新的数组,元素的数量成为count,合适的默认值为repeatedValue

var threeDoubles = Double[](count: 3, repeatedValue: 0.0)
// threeDoubles 的类型为 Double[], 以及等于 [0.0, 0.0, 0.0]

得益于类型推断,你并不需要指明这个数组储存的类型就能使用这个初始化方法,因为它从默认值中就能推断出来。

var anotherThreeDoubles = Array(count: 3, repeatedValue: 2.5)
// anotherThreeDoubles 被推断为 Double[], 以及等于 [2.5, 2.5, 2.5]

最后,你可以使用(+)操作符就能创建一个新的数组,把两个存在的数组添加进来
这个新的数组类型从你添加的两个数组中推断出来

var sixDoubles = threeDoubles + anotherThreeDoubles
// sixDoubles 被推断为 Double[], 并等于 [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]

1 2 3 4

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论