Swift - Types de données

Lors de la programmation dans n'importe quel langage de programmation, vous devez utiliser différents types de variables pour stocker des informations. Les variables ne sont rien d'autre que des emplacements de mémoire réservés pour stocker des valeurs. Cela signifie que lorsque vous créez une variable, vous réservez de l'espace en mémoire.

Vous pouvez souhaiter stocker des informations de différents types de données comme une chaîne, un caractère, un caractère large, un entier, une virgule flottante, une valeur booléenne, etc. En fonction du type de données d'une variable, le système d'exploitation alloue de la mémoire et décide de ce qui peut être stocké dans le fichier réservé Mémoire.

Types de données intégrés

Swift 4 offre au programmeur un riche assortiment de types de données intégrés et définis par l'utilisateur. Les types de données de base suivants sont les plus fréquents lors de la déclaration de variables -

  • Int or UInt- Ceci est utilisé pour les nombres entiers. Plus spécifiquement, vous pouvez utiliser Int32, Int64 pour définir un entier signé 32 ou 64 bits, tandis que UInt32 ou UInt64 pour définir des variables d'entier non signé 32 ou 64 bits. Par exemple, 42 et -23.

  • Float- Ceci est utilisé pour représenter un nombre à virgule flottante de 32 bits et des nombres avec des points décimaux plus petits. Par exemple, 3.14159, 0.1 et -273.158.

  • Double- Ceci est utilisé pour représenter un nombre à virgule flottante de 64 bits et utilisé lorsque les valeurs à virgule flottante doivent être très grandes. Par exemple, 3.14159, 0.1 et -273.158.

  • Bool - Cela représente une valeur booléenne qui est vraie ou fausse.

  • String- Ceci est une collection ordonnée de caractères. Par exemple, "Hello, World!"

  • Character- Il s'agit d'un littéral de chaîne à un seul caractère. Par exemple, "C"

  • Optional - Cela représente une variable qui peut contenir une valeur ou aucune valeur.

  • Tuples - Ceci est utilisé pour regrouper plusieurs valeurs en une seule valeur composée.

Nous avons répertorié ici quelques points importants liés aux types entiers -

  • Sur une plate-forme 32 bits, Int a la même taille que Int32.

  • Sur une plate-forme 64 bits, Int a la même taille que Int64.

  • Sur une plate-forme 32 bits, UInt a la même taille que UInt32.

  • Sur une plate-forme 64 bits, UInt a la même taille que UInt64.

  • Int8, Int16, Int32, Int64 peuvent être utilisés pour représenter les formes 8 bits, 16 bits, 32 bits et 64 bits d'entiers signés.

  • UInt8, UInt16, UInt32 et UInt64 peuvent être utilisés pour représenter les formes 8 bits, 16 bits, 32 bits et 64 bits d'entiers non signés.

Valeurs liées

Le tableau suivant montre le type de variable, la quantité de mémoire nécessaire pour stocker la valeur en mémoire et la valeur maximale et minimale pouvant être stockée dans ce type de variables.

Type Largeur de bit typique Gamme typique
Int8 1 octet -127 à 127
UInt8 1 octet 0 à 255
Int32 4 octets -2147483648 à 2147483647
UInt32 4 octets 0 à 4294967295
Int64 8 octets -9223372036854775808 à 9223372036854775807
UInt64 8 octets 0 à 18446744073709551615
Flotte 4 octets 1.2E-38 à 3.4E + 38 (~ 6 chiffres)
Double 8 octets 2,3E-308 à 1,7E + 308 (~ 15 chiffres)

Alias ​​de type

Vous pouvez créer un nouveau nom pour un type existant en utilisant typealias. Voici la syntaxe simple pour définir un nouveau type à l'aide de typealias -

typealias newname = type

Par exemple, la ligne suivante indique au compilateur que Feet est un autre nom pour Int -

typealias Feet = Int

Maintenant, la déclaration suivante est parfaitement légale et crée une variable entière appelée distance -

typealias Feet = Int
var distance: Feet = 100
print(distance)

Lorsque nous exécutons le programme ci-dessus en utilisant Playground, nous obtenons le résultat suivant.

100

Sécurité de type

Swift 4 est un langage de type sécurisé, ce qui signifie que si une partie de votre code attend un String, vous ne pouvez pas lui passer un Int par erreur.

Comme Swift 4 est de type sécurisé, il effectue des vérifications de type lors de la compilation de votre code et marque tous les types incompatibles comme des erreurs.

var varA = 42
varA = "This is hello"
print(varA)

Lorsque nous compilons le programme ci-dessus, il produit l'erreur de compilation suivante.

main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"

Inférence de type

L'inférence de type permet à un compilateur de déduire automatiquement le type d'une expression particulière lorsqu'il compile votre code, simplement en examinant les valeurs que vous fournissez. Swift 4 utilise l'inférence de type pour déterminer le type approprié comme suit.

// varA is inferred to be of type Int
var varA = 42
print(varA)

// varB is inferred to be of type Double
var varB = 3.14159
print(varB)

// varC is also inferred to be of type Double
var varC = 3 + 0.14159
print(varC)

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

42
3.14159
3.14159