Al fin después de tanto trabajar hemos hallado el arreglo de esta problema que ciertos los usuarios de este sitio han tenido. Si tienes algo más que aportar no dudes en aportar tu comentario.
Solución:
En Rápido 4.2 hay un nuevo static método para enteros de ancho fijo que hace que la sintaxis sea más fácil de usar:
func makeList(_ n: Int) -> [Int]
return (0..
Editar/actualizar: Swift 5.1 o posterior
También podemos extender Range
y ClosedRange
y crear un método para devolver n
elementos aleatorios:
extension RangeExpression where Bound: FixedWidthInteger
func randomElements(_ n: Int) -> [Bound]
precondition(n > 0)
switch self
case let range as Range: return (0..: return (0..
extension Range where Bound: FixedWidthInteger
var randomElement: Bound .random(in: self)
extension ClosedRange where Bound: FixedWidthInteger
var randomElement: Bound .random(in: self)
Uso:
let randomElements = (1...20).randomElements(5) // [17, 16, 2, 15, 12]
randomElements.sorted() // [2, 12, 15, 16, 17]
let randomElement = (1...20).randomElement // 4 (note that the computed property returns a non-optional instead of the default method which returns an optional)
let randomElements = (0..<2).randomElements(5) // [1, 0, 1, 1, 1]
let randomElement = (0..<2).randomElement // 0
Nota: para Swift 3, 4 y 4.1 y antes haga clic aquí.
Ok, esto es copiar/pegar una pregunta hecha en otro lugar, pero creo que intentaré recordar esa frase:
var randomArray = map(1...100)_ in arc4random()
(Me encanta !)
EDITAR
Si necesita un número aleatorio con un límite superior (exclusivo), use arc4random_uniform (límite superior)
por ejemplo: número aleatorio entre 0 y 99: arc4random_uniform(100)
Actualización rápida 2
var randomArray = (1...100).map_ in arc4random()
rápido 5
Esto crea un array de tamaño 5, y cuyos elementos van del 1 al 10 inclusive.
let arr = (1...5).map( _ in Int.random(in: 1...10) )
Finalizando este artículo puedes encontrar los comentarios de otros programadores, tú asimismo puedes mostrar el tuyo si te apetece.