568 Stimmen

Warum Struct anstelle von Klasse wählen?

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?

-1voto

Tapash Mollick Punkte 135

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.

-1voto

Kumar Lav Punkte 262

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X