Avatar ·

Was bedeutet das Schlüsselwort `some` in Swift (und SwiftUI)? Erklärung für Anfänger

Hallo zusammen! Ich lerne Swift und SwiftUI und sehe ständig das Schlüsselwort `some` im Code. Zum Beispiel: ```swift struct ContentView: View { var body: some View { Text("Hello, World!") } } ``` Ich verstehe, dass `some` vor dem Typ `View` steht, aber ich kann nicht verstehen, warum es nötig ist. Warum kann man nicht einfach `var body: View` schreiben? Schließlich ist `Text` doch auch ein `View`. Ich habe versucht, `some` zu entfernen – Xcode meckert und sagt etwas über Protokolle. Ich habe gelesen, dass es mit Opaque Types (undurchsichtige Typen) zusammenhängt und damit, dass Swift nicht mit Protokollen arbeiten kann, die `Self` oder `associated types` haben. Aber das klingt sehr kompliziert. Bitte erklären Sie in einfachen Worten: Was macht `some`, warum wird es gerade in SwiftUI benötigt, und wie funktioniert es unter der Haube? Geben Sie Beispiele, wann `some` obligatorisch ist und wann man es weglassen kann. Vielen Dank im Voraus! <<>>

Das Schlüsselwort some ist ein "undurchsichtiger Typ" (Opaque Type)

Stellen Sie sich vor, Sie bestellen ein Taxi, aber