Enlever un élément d'un tableau en Swift
devulder
Membre
Bonjour,
J'ai le code suivant:
class toto
{
}
var tableau:[toto] = []
let test = toto()
tableau.append(test)
// maintenant je veux enlever l’élément 'test' du tableau
let index = tableau.index{$0 === test}
tableau.remove(at: index!)
Il n'y a pas une méthode pour simplifier du genre tableau.remove(test) avec une extension ou autre ?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En Swift 4.2, il y a un
remove(where:)
bien pratique.Mais entre temps, non, à moins d'utiliser un
filter()
(mais ça retourne un tableau sans la valeur).Tu peux mimer le
remove(where:)
en créant un extension cependant.Il faut que la classe toto se conforme au protocol
Equatable
.J'ai lu en diagonale. Oubliez ça.
Sans utiliser de génériques (et pas vraiment fully tested, et le mettre sur Sequence peut-être plutôt qu'Array uniquement), mais clairement à s'rait à faire et ça doit se sûrement déjà se trouver sur le net :
Tu peux virer le
while
et le remplacer par unif
si tu veut unremoveFirst(where:)
, etc.De toute manière, Swift 4.2 sera disponible avant la fin du mois avec la version officielle d'XCode 10.
Merci a tous pour ces informations
Si tu veux utiliser
===
pour comparer l'élément à enlever (en indiquant que tu ne mets que les classes dans la liste), tu peux créer un extension comme ci :Si tu veux utiliser la meme chose pour n'importe quel type (au moins Equatable), tu peux faire :
Et, pour les classes, il faut ajouter :
Merci!
C'est disponible depuis ce soir ..