Ich bemerkte seltsame Dinge, wenn Sie versuchen, Array-Elemente in einer Schleife zu entfernen oder zu verändern. Wenn Sie es jedoch ausführen, während enumerate()
auf dem Array aufrufen, funktioniert es wie erwartet. Was ist das Konzept dahinter und wann sollten wir enumerate()
verwenden?Wann verwenden Sie in Swift Enumerate für Arrays?
Antwort
die Frage aus dem Titel zu beantworten, Sie enumerate()
verwenden, wenn Sie Wert des Index zusätzlich zu dem Wert müssen selbst:
Wenn Sie den Integer-Index der einzelnen Elemente sowie deren Wert benötigen, verwenden Sie die
enumerate()
Methode, um stattdessen über das Array zu iterieren.for (index, value) in shoppingList.enumerate() { print("Item \(index + 1): \(value)") }
enumerate()
bietet ein sicheres Muster Array-Elemente zum Modifizieren während über sie iterieren:
for (index, (var value)) in shoppingList.enumerate() {
if value == "something" {
shoppingList[index] = "something-else"
}
}
Was meinst du mit * "while generate(), die in der regulären Schleife verwendete Methode, nicht." *? - Eine "normale" Schleife ist auch sicher: 'für elem in Array {array.removeAll()}' läuft ohne Probleme. –
@MartinR Das ist schön zu wissen. Ich denke, ich sollte den Grund sowieso nicht kommentieren, weil zu viele Teile im Spiel sein könnten (ist das Element eine Klasse oder eine Struktur, ist die Schleifenvariable a 'var', ist das Array selbst oder nur seine Elemente und bald). Die Idee war natürlich, den niedlichen Trick zu demonstrieren, was mein Kommentar in der Mitte nicht im Geringsten half. Vielen Dank! – dasblinkenlight
- 1. Wann verwenden Sie in swift?
- 2. wann @objc in Swift-Code verwenden?
- 3. Swift 2.0: 'Enumerate' ist nicht verfügbar: Rufen Sie die 'enumerate()' Methode auf die Sequenz
- 4. enumerate() für Wörterbuch in Python
- 5. Wann Vektoren und wann Arrays in C++ verwenden?
- 6. Vergleichen Sie Arrays in Swift
- 7. Wann verwenden Sie Tabellencluster?
- 8. Verwenden Sie Arrays in preg_match()
- 9. Wann würden Sie XamlServices.Transform() verwenden?
- 10. Wann und wie @noreturn Attribut in Swift verwenden?
- 11. Wann verwenden Sie positive Lookarounds in Regex?
- 12. Pythons Enumerate in Ruby?
- 13. Wann verwenden Sie private Methoden?
- 14. Wann verwenden Sie Eigenschaften und wann in Java?
- 15. Wann verwenden Sie die Abhängigkeitsinjektion?
- 16. Wann würden Sie PendingIntent verwenden?
- 17. Wann verwenden Sie die Klammererweiterung?
- 18. Arrays von Generics in Swift
- 19. Wann sollten Sie (...) {...} in C# verwenden?
- 20. Wann würden Sie Delegierte in C# verwenden?
- 21. .Net enumerate Winforms Schriftarten?
- 22. Swift Delegation - wann schwachen Zeiger auf Delegaten verwenden
- 23. Wann System() verwenden und wann execv *() verwenden?
- 24. Wann node.js verwenden und wann Ajax verwenden?
- 25. Wann "if" und "wann" in Clojure verwenden?
- 26. Anfügen von Arrays in Swift
- 27. Wie Zip-Arrays in Swift?
- 28. Verwenden Sie verschachtelte Arrays in VAO
- 29. Wann sollten Sie ein benutzerdefiniertes Eingabeformat für Map-Aufträge verwenden?
- 30. So verwenden Sie JSTileMap in swift
Es ist nicht klar, was Sie fragen. Können Sie ein Beispiel für Ihr Problem mit einer Schleife oder Aufzählung und dem erwarteten und tatsächlichen Verhalten angeben? – JAL
Werfen Sie einen Blick auf http://stackoverflow.com/a/32425212/1187415. –