在Swift中以降序创建数组的最短方法

JKR*_*KRT 2 arrays initialization swift

我可以通过以下方式在Swift中按升序创建数组

let x = Array(100...999)
Run Code Online (Sandbox Code Playgroud)

但是,如果我做相反的事情,例如

let x = Array(999...100) //Does not work
Run Code Online (Sandbox Code Playgroud)

Ale*_*ica 9

这个怎么样?

let x = Array((100...999).reverse())
Run Code Online (Sandbox Code Playgroud)

PS 当你算术进步而不仅仅是时,Stridable协议是很方便的+1.

这是在这里使用它的一个例子:(Swift 2.2)

let x = Array(999.stride(through: 100, by: -1))
Run Code Online (Sandbox Code Playgroud)

在Swift 3.0中:

let x = Array(stride(from: 999, through: 100, by: -1))
Run Code Online (Sandbox Code Playgroud)

  • 是的,我个人也好.他们正在做一个很好的改变,通知你需要改变什么.希望他们能用这种方式分享更好的语言 (2认同)