Überprüfung der Elementexistenz in einem Swift-Array: Best Practices 2025

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

🔍 Warum die Existenz eines Elements in einem Swift-Array überprüfen? Und wie macht man es 2025 richtig?

\n\n

Stellen Sie sich vor: Sie schreiben eine App zum Bestellen von Pizza. Der Benutzer hat "Pepperoni", "Hawaii" und "Margherita" ausgewählt. Ihr Code muss sicherstellen, dass "Pepperoni" bereits im Warenkorb ist, um kein Duplikat hinzuzufügen. Oder Sie arbeiten mit einer Kundendatenbank und prüfen, ob eine E-Mail im System registriert ist. Die Überprüfung der Existenz eines Elements in einem Array ist eine der häufigsten Operationen in der Swift-Entwicklung.

\n\n

Das klingt einfach, oder? Aber im Jahr 2025, wo Swift sich rasant entwickelt und die Leistung mobiler Apps entscheidend ist, kann die Wahl der falschen Methode zu UI-Verzögerungen oder stundenlangem Debugging führen. In diesem Artikel behandeln wir alle Methoden zur Überprüfung eines Elements in einem Swift-Array: vom einfachen contains() bis zu fortgeschrittenen Closures und der Arbeit mit benutzerdefinierten Typen. Sie erfahren, welche Methode Sie für Ihre Aufgabe wählen sollten und warum.

\n\n

Übrigens: Diese Frage ist eine der beliebtesten auf Stack Overflow (über 200.000 Aufrufe). Und wir geben eine umfassende, moderne Antwort darauf. Los geht's! 🚀

\n\n

📦 Arrays in Swift: Grundlegender Überblick (für Eilige)

\n\n

Ein Array ist eine geordnete Sammlung von Elementen desselben Typs. In Swift sind Arrays typsicher, das heißt, Sie können nicht versehentlich einen String zu einem Zahlen-Array hinzufügen. Das ist sowohl ein Vorteil (weniger Bugs) als auch eine Herausforderung (strikte Typangabe erforderlich).

\n\n
let pizzaMenu: [String] = ["Margherita", "Pepperoni", "Hawaii", "Vier Käse"]\nlet numbers: [Int] = [1, 2, 3, 4, 5]\n
\n\n

Kommen wir nun zum Wesentlichen – wie überprüft man, ob ein Element in einem Array vorhanden ist?

\n\n

🛠️ Top-5 Methoden zur Überprüfung der Elementexistenz in einem Swift-Array

\n\n

1. contains() – Der König der Einfachheit (Equatable)

\n\n

Die offensichtlichste und am häufigsten verwendete Methode. Die Methode contains(_:) gibt true zurück, wenn das Element gefunden wird. Funktioniert nur mit Typen, die dem Protokoll Equatable entsprechen (das sind alle Basistypen wie String, Int, Double usw.).

\n\n
let pizzas = ["Margherita", "Pepperoni", "Hawaii"]\nif pizzas.contains("Pepperoni") {\n    print("Diese Pizza gibt es!") // ✅ Gibt dies aus\n} else {\n    print("Pizza nicht gefunden")\n}\n
\n\n

Vorteile: lesbar, prägnant, schnell.

\n

Nachteile: funktioniert nicht bei komplexen Objekten (Struktur/Klasse) ohne Equatable.

\n\n

2. contains(where:) – Für komplexe Prüfungen

\n\n

Wenn Sie nicht auf exakte Übereinstimmung prüfen müssen, sondern auf eine Bedingung (z. B. "Gibt es eine Pizza, die teurer als 500 Rubel ist?"), verwenden Sie contains(where:). Es akzeptiert ein Closure, das einen Bool zurückgibt.

\n\n
struct Pizza {\n    let name: String\n    let price: Int\n}\n\nlet order: [Pizza] = [\n    Pizza(name: "Margherita", price: 450),\n    Pizza(name: "Pepperoni", price: 550),\n    Pizza(name: "Hawaii", price: 500)\n]\n\nlet hasExpensivePizza = order.contains { $0.price > 500 }\nprint("Gibt es eine teure Pizza? \\(hasExpensivePizza)") // true\n
\n\n

Vorteile: Flexibilität, funktioniert mit allen Typen.

\n

Nachteile: etwas langsamer als contains() (aber für 99% der Fälle ist der Unterschied vernachlässigbar).

\n\n

3. firstIndex(of:) – Wenn der Index wichtig ist

\n\n

Manchmal reicht es nicht zu wissen, ob ein Element existiert, sondern man braucht auch seine Position. Zum Beispiel, um es zu löschen oder zu ersetzen. Die Methode firstIndex(of:) gibt einen optionalen Int? zurück.

\n\n
let pizzas = ["Margherita", "Pepperoni", "Hawaii"]\nif let index = pizzas.firstIndex(of: "Pepperoni") {\n    print("Pepperoni ist an Position \\(index)") // 1\n} else {\n    print("Nicht gefunden")\n}\n
\n\n

Wichtig: firstIndex erfordert ebenfalls Equatable. Wenn Ihr Typ nicht entspricht

Blogs

Buchempfehlungen