Ich habe gesehen, dass es in Swift viele Integer-Typen außer Int
gibt, zum Beispiel:
Ich kann ihre Definitionen verstehen, aber ich frage mich, wann / warum ich sie anstelle von Int
benutzen sollte?
Zum Beispiel ist Int8
eine 8-Bit-Ganzzahl. Von meinem Verständnis, wenn ich etwas Speicher sparen möchte, warum verwenden Sie es nicht?
PS. Ich verwende Swift für die Entwicklung von iOS-Apps.
Genau wie Swift andere Aspekte unterhalb der Abdeckungen wie Zeiger hat, sind diese anderen numerischen Typen für spezifische Zwecke vorhanden. Einige dieser Zwecke sind:
Integration mit einer C-Bibliothek. Es gibt möglicherweise bestimmte C-Typen, die von einer C-Bibliothek benötigt werden, und mit diesen Typen können Sie Daten an / von den Bibliotheken
Sehr große wissenschaftliche Datensätze. Float (Gleitkomma-Gleitkommazahl mit 32 Bit) ermöglicht es Ihnen, die Elemente im Speicher doppelt so groß zu halten wie Double. Mehrtägige globale Umweltdatensätze von Satellitensensoren, Astronomie-Datasets usw. haben einen großen Platzbedarf.
Gleitkomma mit halber Genauigkeit erfordert Hälfte den Speicher und die Bandbreite von Float und kann für einige Grafikanwendungen relevant sein
Vektorverarbeitung mit der Accelerate-Bibliothek. Accelerate-Funktionen arbeiten mit einer Vielzahl von numerischen Typen und 32-Bit Genauigkeit mit einfacher Genauigkeit können für die Aufgabe, die Sie ausführen möchten, akzeptabel sein.
Wie andere bereits erwähnt haben, besteht manchmal die Notwendigkeit der Interoperabilität mit einer externen (C) Bibliothek, oder Sie wollen nur die erlaubten Werte einschränken / einen Überlauf erkennen.
Betrachten Sie als Beispiel dieses gist , das ich vor einiger Zeit gemacht habe:
%Vor%... was eine praktische Abkürzung für das Erstellen einer UIColor-Instanz ist, wenn Sie die Werte von Komponenten kennen, die Sie als 'Bytes' (Ganzzahlen im Bereich von 0 bis 255) anstelle von 'normalisierten' Gleitkommazahlen ( dh 0,0 ~ 1,0).
Die Verwendung des spezifischen Typs UInt8
anstelle von Swifts nativem Int
erzwingt die Richtlinie (und verdeutlicht die Absicht), dass Argumente vorzeichenlose 8-Bit-Ganzzahlwerte sein müssen.
Um die Anleitung :
Verwenden Sie den Int-Typ für alle allgemeinen Integer-Konstanten und Variablen in Ihrem Code, auch wenn bekannt ist, dass sie nicht negativ sind. [...] Benutzen andere Integer - Typen nur dann, wenn sie speziell für die Aufgabe, wegen der explizit großen Daten von einem externen Quelle oder für die Leistung, Speichernutzung oder andere notwendige Optimierung. Die Verwendung von Typen mit expliziter Größe in diesen Situationen hilft um zufällige Wertüberläufe zu erfassen und dokumentiert implizit die Art der verwendeten Daten.
Tags und Links swift