2014-12-29 7 views
16

Ad esempio, in pitone che potrebbe dire qualcosa sulla falsariga diC'è un modo per generare istantaneamente un array riempito con un intervallo di valori in Swift?

arr = range(0,30) 

e ricevere una matrice con detti elementi. Sospetto che qualcosa di simile potrebbe essere possibile con un pedice in Swift, ma dopo aver setacciato la documentazione e l'iBook di Apple non riesco a trovare una soluzione "batterie incluse" per generare detto array.

È questo qualcosa che dovrei scrivere il codice manualmente, oppure esiste un metodo pre-scritto?

risposta

36

È possibile creare una matrice con una serie come questa:

var values = Array(0...100) 

questo vi darà una serie di [0, ..., 100]

8

È possibile creare una gamma e mappare in un array:

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

La chiusura map restituisce semplicemente l'elemento di gamma, con conseguente una matrice i cui elementi sono tutti i numeri interi incluso nella gamma. Naturalmente è possibile generare elementi e tipi diversi, come ad esempio:

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

che genera un array di stringhe Index0, Index1, ecc

3

È possibile utilizzare questo per creare matrice che contiene lo stesso valore

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

Oppure, se si desidera creare una matrice di gamma si può fare in questo modo

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

In questo caso si ottiene una matrice che contiene i valori Int 1-10

+0

In Swift 3 Ricevo un errore per questa sintassi. C'è qualcosa che è cambiato? – boehmatron

+0

Sintassi Swift 4: let array = Array (ripetizione: 10, numero: 5) –