Beim Spielen mit Swift, kommend aus einem Java-Hintergrund, warum sollte man sich für eine Struktur statt einer Klasse entscheiden? Es scheint, als ob sie dasselbe wären, wobei eine Struktur weniger Funktionalität bietet. Warum also wählen?
Antworten
Zu viele Anzeigen?Da Strukturen Werttypen sind und du den Speicher sehr leicht erstellen kannst, der in den Stapel gespeichert wird. Strukturen können leicht zugänglich sein und nach dem Arbeitsbereich wird es leicht aus dem Stapelspeicher durch Pop vom oberen Teil des Stapels freigegeben. Auf der anderen Seite ist eine Klasse ein Verweistyp, der im Heap gespeichert wird, und Änderungen an einem Klassenobjekt wirken sich auf ein anderes Objekt aus, da sie eng gekoppelt sind und Verweistypen sind. Alle Elemente einer Struktur sind öffentlich, während alle Elemente einer Klasse privat sind.
Die Nachteile einer Struktur bestehen darin, dass sie nicht vererbt werden kann.
Strukturen und Klassen sind gute Optionen zum Speichern von Daten und zum Modellieren von Verhalten in Ihren Apps, aber ihre Ähnlichkeiten können es schwierig machen, eine gegenüber der anderen zu wählen.
Betrachten Sie die folgenden Empfehlungen, um zu entscheiden, welche Option sinnvoll ist, wenn Sie einen neuen Datentyp zu Ihrer App hinzufügen.
- Verwenden Sie standardmäßig Strukturen.
- Verwenden Sie Klassen, wenn Sie Objective-C-Interoperabilität benötigen.
- Verwenden Sie Klassen, wenn Sie die Identität der Daten kontrollieren müssen, die Sie modellieren.
- Verwenden Sie Strukturen zusammen mit Protokollen, um Verhalten durch gemeinsame Implementierungen anzunehmen.
Ref- Apple-Dokumentation
- See previous answers
- Weitere Antworten anzeigen