有没有办法在Swift中立即生成一个充满一系列值的数组?

时间:2014-12-29 07:50:41

标签: arrays swift range

例如,在python中,我可以说出

的内容
arr = range(0,30) 

获取包含所述元素的数组。 我怀疑Swift中的下标可能有类似的东西,但是在搜索了文档和Apple的iBook之后,我找不到包含电池的电池和#34;生成所述数组的解决方案。

这是我必须手动编写代码的,或者是否有预先编写的方法?

4 个答案:

答案 0 :(得分:55)

您可以使用以下范围创建数组:

var values = Array(0...100)

这会给你一个[0, ..., 100]

的数组

答案 1 :(得分:14)

您可以创建一个范围并将其映射到数组中:

var array = (0...30).map { $0 }

map闭包只返回range元素,从而产生一个数组,其元素都是包含在范围内的整数。当然,可以生成不同的元素和类型,例如:

var array = (0...30).map { "Index\($0)" }

生成字符串数组Index0Index1

答案 2 :(得分:7)

您可以使用它来创建包含相同值的数组

let array = Array(count: 5, repeatedValue: 10)

或者如果你想从范围创建一个数组,你可以这样做

let array = [Int](1...10)

在这种情况下,您将获得一个包含1到10的Int值的数组

答案 3 :(得分:1)

创建一个从0到N-1的Int数组

var arr = [Int](0..<N)

创建一个从0到N-1的Float数组

var arr = (0..<N).map{ Float($0) }

创建一个从0到2π的浮点数组,包括2π步骤0.1

var arr:[Float] = stride(from: 0.0, to: .pi * 2 + 0.1, by: 0.1).map{$0}
or
var arr:[Float] = Array(stride(from: 0.0, to: .pi * 2 + 0.1, by: 0.1))