如何在Swift中创建一个递增值的数组?

Dri*_*ler 56 swift

我知道我可以在Swift中使用重复值创建一个数组:

var myArray = [Int](count: 5, repeatedValue: 0)
Run Code Online (Sandbox Code Playgroud)

但是有没有办法创建一个具有递增值的数组,例如[0, 1, 2, 3, 4]除了做一个循环之外

var myArray = [Int]()
for i in 0 ... 4 {
    myArray.append(i)
}
Run Code Online (Sandbox Code Playgroud)

我知道代码非常简单,可读和防弹,但感觉我应该能够以某种方式将某些函数传递给数组,因为它是为了提供递增的值而创建的.它的可读性或计算效率可能不值得,但我很好奇.

luk*_*302 135

使用...符号

let arr1 = 0...4
Run Code Online (Sandbox Code Playgroud)

这样Range你就可以轻松变成"常规" Array:

let arr2 = Array(0...4)
Run Code Online (Sandbox Code Playgroud)

  • @Adrian 对 Double 使用 `stride(from:to:by:)` 函数(或 `stride(from:through:by:)`)。例如: `let myArray = Array(stride(from: 0.0, through: 5.0, by: 1.0))` 给你一个 Double 数组:`[0.0, 1.0, 2.0, 3.0, 4.0, 5.0]`。 (14认同)
  • 如何初始化“Double”数组? (2认同)
  • 你也可以这样做: `letindexs: [Int] = (0..<4).indices.map { $0 } // 0,1,2,3` (2认同)