In Swift (iOS-App), wann muss ich andere Integertypen verwenden?

8

Ich habe gesehen, dass es in Swift viele Integer-Typen außer Int gibt, zum Beispiel:

%Vor%

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.

    
Joe Huang 16.12.2015, 00:31
quelle

3 Antworten

4

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

  • übergeben
  • 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.

timbo 16.12.2015, 00:57
quelle
1

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.

    
Nicolas Miari 16.12.2015 04:25
quelle
0

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.

    
Michael Kohl 16.12.2015 03:56
quelle

Tags und Links