Supposons que j'ai un tableau, par exemple:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
Et plus tard, je veux pousser / ajouter un élément à la fin dudit tableau, pour obtenir:
["Steve", "Bill", "Linus", "Bret", "Tim"]
Quelle méthode dois-je utiliser?
Et qu'en est-il du cas où je veux ajouter un élément à l' avant du tableau? Y a-t-il un décalage constant dans le temps?
let array = [Int]()
vous ne pouvez jamais dire quearray[0] = 42
cela donnera une erreur d' index hors plage . Vous devez utiliserarray.append(42)
. Pourquoi ne pouvez-vous pas vous inscrire? Pour la même raison que vous ne pouvez pas le faireletters[3] = d
pourlet letters = [a,b,c]
. Le 3e index est inexistant, tout comme le tableau [0] avant une valeur!Réponses:
Depuis Swift 3/4/5 , cela se fait comme suit.
Pour ajouter un nouvel élément à la fin d'un tableau.
Pour ajouter un tableau différent à la fin de votre tableau.
Pour insérer un nouvel élément dans votre tableau.
Pour insérer le contenu d'un tableau différent dans votre tableau.
Pour plus d'informations, reportez-vous au chapitre "Types de collections" du " Langage de programmation Swift ", à partir de la page 110.
la source
splice
renommerinsertContentsOf
dans Swift 2.Vous pouvez également passer une variable et / ou un objet si vous le souhaitez.
Pour les ajouter au recto:
Comme d'autres l'ont déjà dit, vous ne pouvez plus utiliser '+ =' à partir de xCode 6.1
la source
.prepend()
fonction, l'insertion en tête semble être une bonne approchePour ajouter à la fin, utilisez l'
+=
opérateur:Cet opérateur est généralement équivalent à la
append(contentsOf:)
méthode. (Et dans les versions Swift vraiment anciennes, il pouvait ajouter des éléments uniques, pas seulement d'autres collections du même type d'élément.)Il y a aussi
insert(_:at:)
pour insérer à n'importe quel index.Si, par exemple, vous souhaitez une fonction de commodité à insérer au début, vous pouvez l'ajouter à la
Array
classe avec une extension .la source
myArray
est de typeArray
, la première ligne est incorrecte. L'+=
opérateur ne peut être utilisé que si les deuxmyArray
et l'opérande de droite sont de typeArray
.+=
etappend
sont équivalents n'est pas correct, le premier implique la création d'un tableau temporaire qui sera rejeté dès que la fonction d'opérateur le consommera.Utilisez les opérateurs + = et +:
puis utilisez:
la source
var copy = left
puis d'ajoutercopy.append(right)
. Dans Swift, les tableaux sont des types de valeur, pas des types de référence.Voici une petite extension si vous souhaitez insérer au début du tableau sans perdre l'élément à la première position
la source
Dans Swift 4.1 et Xcode 9.4.1
Nous pouvons ajouter des objets à Array essentiellement de deux manières
Type 1)
Type 2)
Si vous souhaitez ajouter deux tableaux
la source
À partir de la page 143 du langage de programmation Swift:
Extrait de: Apple Inc. «The Swift Programming Language». iBooks. https://itun.es/us/jEUH0.l
la source
Pour compléter les solutions proposées
append
, il est utile de savoir qu'il s'agit dans de nombreux cas d'une opération à temps constant amorti :Je cherche un
cons
opérateur similaire pour Swift. Il doit renvoyer un nouveau tableau immuable avec l'élément cloué sur la fin, en temps constant, sans changer le tableau d'origine. Je n'ai pas encore trouvé de fonction standard pour cela. J'essaierai de me souvenir d'en faire rapport si j'en trouve un!la source
Vous pourriez utiliser
la source
Si vous souhaitez ajouter un objet unique, vous pouvez développer la structure du tableau
la source
Si le tableau est NSArray, vous pouvez utiliser la
adding
fonction pour ajouter un objet à la fin du tableau, comme ceci:Swift 4.2
Résultat :
C'est un moyen très simple, salut!
la source
Dans Swift 4.2: vous pouvez utiliser
ou
la source
Exemple: étudiants = ["Ben", "Ivy", "Jordell"]
1) Pour ajouter des éléments uniques à la fin d'un tableau, utilisez l'append (_ :)
students.append(\ "Maxime" )
2) Ajoutez plusieurs éléments en même temps en passant un autre tableau ou une séquence de tout type à la méthode append (contentsOf :)
students.append(contentsOf: ["Shakia" , "William"])
3) Pour ajouter de nouveaux éléments au milieu d'un tableau en utilisant la méthode insert (_: at :) pour les éléments simples
students.insert("Liam" , at:2 )
4) Utilisation de insert (contentsOf: at :) pour insérer plusieurs éléments d'une autre collection ou d'un littéral de tableau
students.insert(['Tim','TIM' at: 2 )
la source