web-dev-qa-db-fra.com

Existe-t-il un moyen de générer instantanément un tableau contenant une plage de valeurs dans Swift?

Par exemple, en python, je pourrais dire quelque chose dans le sens de

arr = range(0,30) 

et obtenir un tableau avec lesdits éléments. Je pense que quelque chose de similaire pourrait être possible avec un indice dans Swift, mais après avoir parcouru la documentation et l'iBook d'Apple, je ne trouve pas de solution "piles incluses" pour générer ledit ensemble.

Est-ce quelque chose que je devrais écrire manuellement le code, ou existe-t-il une méthode pré-écrite pour cela?

26
hansvimmer

Vous pouvez créer un tableau avec une plage comme celle-ci: 

var values = Array(0...100)

Cela vous donne un tableau de [0, ..., 100] 

53
Kalenda

Vous pouvez créer une plage et la mapper dans un tableau:

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

La fermeture map renvoie simplement l'élément range, ce qui donne un tableau dont tous les éléments sont des entiers inclus dans l'intervalle. Bien sûr, il est possible de générer différents éléments et types, tels que:

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

qui génère un tableau de chaînes Index0, Index1, etc.

12
Antonio

Vous pouvez l'utiliser pour créer un tableau contenant la même valeur

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

Ou si vous voulez créer un tableau de la gamme, vous pouvez le faire comme ceci

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

Dans ce cas, vous obtiendrez un tableau contenant les valeurs Int de 1 à 10

5
mustafa

créer un tableau Int de 0 à N-1

var arr = [Int](0..<N)

créer un tableau Float de 0 à N-1

var arr = (0..<N).map{ Float($0) }

créer un tableau float de 0 à 2π incluant 2π étape 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))
0
lbsweek