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

han*_*mer 30 arrays range swift

例如,在python中,我可以说出类似的内容

arr = range(0,30) 
Run Code Online (Sandbox Code Playgroud)

并获得具有所述元素的数组.我怀疑Swift中的下标可能有类似的东西,但在搜索文档和Apple的iBook后,我找不到用于生成所述阵列的"电池包含"解决方案.

这是我必须手动编写代码的东西,还是有预先编写的方法呢?

Kal*_*nda 57

您可以创建一个范围如下的数组:

var values = Array(0...100)
Run Code Online (Sandbox Code Playgroud)

这给你一个数组 [0, ..., 100]


Ant*_*nio 16

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

var array = (0...30).map { $0 }
Run Code Online (Sandbox Code Playgroud)

map封闭件简单地返回的范围内元件,从而导致一个数组,其元素是包括在范围内的所有整数.当然,可以生成不同的元素和类型,例如:

var array = (0...30).map { "Index\($0)" }
Run Code Online (Sandbox Code Playgroud)

其产生一个字符串数组Index0,Index1


lbs*_*eek 9

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

var arr = [Int](0..<N)
Run Code Online (Sandbox Code Playgroud)

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

var arr = (0..<N).map{ Float($0) }
Run Code Online (Sandbox Code Playgroud)

创建一个从 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))
Run Code Online (Sandbox Code Playgroud)


mus*_*afa 8

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

let array = Array(count: 5, repeatedValue: 10)
Run Code Online (Sandbox Code Playgroud)

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

let array = [Int](1...10)
Run Code Online (Sandbox Code Playgroud)

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

  • Swift 4语法:let array = Array(重复:10,count:5) (4认同)
  • 在 Swift 3 中,我收到此语法的错误。有什么改变吗? (2认同)