English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Types de données Swift

Dans ce tutoriel, vous découvrirez les différents types de données pris en charge par le langage de programmation Swift et comment les utiliser lors de la création de variables ou de constantes.

Le type de données est le type de données (valeur) dans lequel une variable ou une constante peut être stockée. Par exemple, dans l'articleVariables et constantes Swift,vous avez créé une variable et une constante pour stocker les données de chaîne dans la mémoire.

Les données peuvent être du texte/Une chaîne de caractères ("Hello") ou un nombre (12.45) peut également être un bit (0&1)。Définir le type de données permet de s'assurer que seules les données du type défini sont stockées.

Laissez-nous examiner une scène :

Supposons que vous créiez un jeu. Comme la plupart des jeux affichent le score élevé et le nom du joueur à la fin du jeu, vous devez stocker ces deux données pour le jeu.

Le score élevé (highScore) est un nombre (par exemple 59),le nom du joueur (playerName) est une chaîne de caractères (par exemple Jack). Vous pouvez créer deux variables ou constantes pour stocker des données.

En Swift, cela peut être fait en déclarant la variable et le type de données :

var highScore:Int = 59
var playerName:String = "Jack"

Ici, nous avons déclaré une variable HighScore de type Int, qui stocke la valeur59。 Et la variable de type chaîne de caractères stockant la valeur Jack, playerName.

Mais, si vous effectuez l'opération suivante :

var highScore:Int = "Jack"

Vous obtiendrez une erreur de compilation, qui lève Impossible de convertir la valeur de type 'String' en type 'Int' spécifié.

Cela est dû au fait que vous avez déclaré highScore pour stocker une valeur entière, mais vous y avez placé une chaîne de caractères. Cette erreur assure que highScore ne peut stocker qu'un nombre et non le nom du joueur.

Taille des types de données

Un autre aspect important des types de données est leur taille. Cela spécifie la taille des données que l'on peut stocker dans une variable ou une constante donnée.

La taille du type est mesurée en bits, et elle peut stocker au maximum 2bits。Si vous connaissez le Bit(bit),vous pouvez l'imaginer comme un 0 ou1valeur。

Par conséquent, pourType taille = 1 bit, il ne peut stocker au maximum que 2 1 = 2,deux valeurs : 0 ou 1。Par conséquent, le programme alphabétique1le système de bits peut interpréter 0 comme a/0, et1comme b/1.0。

0 -> a ou 0 
1 -> b ou 1

De même, le système à deux bits peut stocker au maximum2 2 = 4valeur : (00,01,10,11),chaque combinaison peut être représentée par :

00 -> a ou 0
01 -> b ou 1
11 -> c ou 2
10 -> d ou 3

Pour le système de bits, il peut stocker au maximum2 n valeursvaleur

Types de données Swift

Voici une liste des types de données les plus courants dans Swift :

Type booléen (Bool)

  • Variable déclarée en tant que type Bool/Les constantes ne peuvent stocker que deux valeurs true ou false.

  • valeur par défaut:false

  • lors du traitement if-la phrase else est souvent utilisée. Vous pouvez consulter l'article Swift if else.

Exemple1:Type de données booléen

let result:Bool = true
print(result)

Lors de l'exécution du programme, la sortie est :

true

Type entier (Integer)

  • Variable déclarée en tant que type entier/Les constantes peuvent stocker des nombres entiers, positifs et négatifs, y compris zéro, sans partie décimale.

  • valeur par défaut:0

  • Taille:32/64Nombre de bits dépend du type de plateforme.

  • plage de valeurs:-2,147,483,648 à 2,147,483,647(32Nombre de bits dépendant de la plateforme)
    -9223372036854775808 à 9223372036854775807(64Nombre de bits dépendant de la plateforme)

  • Il existe encore de nombreuses variantes du type Integer, telles que UInt, Int8,Int16Vous utilisez le plus souvent Int.

  • Si vous devez spécifier une variable/La taille des entiers que peuvent contenir les constantes/Les types de données, vous pouvez utiliser UInt, Int8、Int16Pour les stocker plus précisément, nous en parlerons ci-dessous.

Exemple2Type de données entier

var highScore:Int = 100
print(highScore)
highScore = -100
print(highScore)

Lors de l'exécution du programme, la sortie est :

100
-100

Dans l'exemple précédent, nous avons déclaré une variable highScore de type Int. Tout d'abord, nous l'avons affectée à100, donc print (highScore) s'affiche sur l'écran100.

Plus tard, nous utilisons l'opérateur d'affectation highScore =-100 et changez la valeur en -100, donc, en affichant (highScore) output-100.

Voyons quelques variantes du type Int dans Swift.

Int8(Entier)

  • Est une variante du type de données entier qui peut stocker des nombres positifs et négatifs.

  • valeur par défaut:0

  • Taille:8Bits

  • gamme:-128 à 127

Un Int8Un nombre peut stocker au total2 8 =(256) valeurs. C'est-à-dire qu'il peut stocker de 255Entre les nombres.

Mais en raison de Int8 Incluant des nombres positifs et négatifs, nous pouvons stocker des nombres de-128à127Les nombres, y compris 0, totalisent256valeur ou nombre.

var highScore:Int8 = -128//Correct
highScore = 127 //Correct
highScore = 128 //Erreur
highScore = -129 //Erreur

Vous pouvez également utiliser Fonction Swift Les fonctions intégrées .min et .max peuvent trouver les valeurs maximales et minimales que peut stocker le type.

Exemple3:valeur maximale et minimale de Int8Type de données

print(Int8.min)
print(Int8.max)

Lors de l'exécution du programme, la sortie est :

-128
127

UInt (entier non signé)

  • Les variantes des types de données entiers, appelées UInt (entiers non signés), ne peuvent stocker que des nombres non signés (valeurs positives ou nulles).

  • valeur par défaut:0

  • Taille:32/64Nombre de bits dépend du type de plateforme.

  • gamme:0 à 4294967295(32Nombre de bits dépendant de la plateforme)
    0 à 18446744073709551615(64Nombre de bits dépendant de la plateforme)

Exemple4Type de données UInt

var highScore:UInt = 100
highScore = -100 //Erreur de compilation lors de la tentative d'exécution de l'opération suivante

Le code ci-dessus génère une erreur de compilation car les entiers non signés ne peuvent stocker que 0 ou des valeurs positives. Essayez de stocker une valeur négative dans un entier non signé vous donnera une erreur.

Float (nombre à virgule flottante)

  • Les variables ou constantes de type flottant peuvent stocker des nombres avec des points décimaux ou des nombres avec des points décimaux.

  • valeur par défaut0.0

  • Taille:32Nombre à virgule flottante.

  • gamme:1.2 * 10 -38à3.4 * 10 38(~6Nombre de bits)

Exemple5Type de données flottantes

let highScore:Float = 100.232
print(highScore)

Lors de l'exécution du programme, la sortie est :

100.232

Double (nombre à virgule flottante double précision)

  • Déclarer une variable de type Double/Les constantes avec point décimal ou des nombres avec point décimal sont également stockés comme Float, mais avec un point décimal plus grand que celui supporté par Float.

  • valeur par défaut0.0

  • Taille:64Un nombre à virgule flottante.(Par conséquent, une variable de type Double peut stocker des nombres avec des décimales ou des nombres dont le point décimal dépasse la capacité de Float)

  • gamme:2.3×10 -308~1.7 * 10 308(~15bits)

Exemple6:type de données de double précision

let highScore:Double = 100.232321212121
print(highScore)

Lors de l'exécution du programme, la sortie est :

100.232321212121

Character (caractère)

  • Déclarer une variable/Les constantes peuvent stocker des littéraux de chaînes de caractères uniques.

  • Vous pouvez utiliser la séquence d'échappement \u{n} (caractère Unicode, n est représenté en hexadécimal) dans Swift pour utiliser des emojis ou des langues autres que l'anglais en tant que caractères.

Exemple7:type de données de caractère

let playerName:Character = "J"
let playerNameWithUnicode:Character = "\u{134"
print(playerName)
print(playerNameWithUnicode)

Lors de l'exécution du programme, la sortie est :

J
Ĵ

String (chaîne)

  • Les variables ou les constantes déclarées comme String peuvent stocker un ensemble de caractères.

  • valeur par défaut:""(chaîne vide)

  • C'est un type de valeur.

  • Vous pouvez utiliser for-dans la boucle itérative des chaînes de caractères.référenceSwift for-dans la boucle.

  • Swift prend également en charge certaines séquences d'échappement spéciales pour les utiliser dans les chaînes de caractères. Par exemple,

    • \0 (caractère de fin de chaîne),

    • \\(un simple的反斜杠\),

    • \t (tabulation),

    • \v (étiquette verticale),

    • \r (retour chariot),

    • \" (guillemet double),

    • \' (guillemet simple), et

    • \u{n} (chaîne Unicode, n est représenté en hexadécimal).

Exemple8:type de données de chaîne

let playerName = "Jack"
let playerNameWithQuotes = "\"Jack\""
let playerNameWithUnicode = "\u{134}ack"
print(playerName)
print(playerNameWithQuotes)
print(playerNameWithUnicode)

Lors de l'exécution du programme, la sortie est :

Jack
"Jack"
Ĵack

Veuillez vous référer àSwift caractères et chaînes de caractères,Pour en savoir plus sur les déclarations, les opérations et les exemples de caractères et de chaînes de caractères, consultez.

En plus de ce type de données, Swift comporte d'autres types de données avancés, tels que tuple,optional,range,class,structure Vous en apprendrez davantage à ce sujet dans les chapitres suivants.

Les choses à retenir

1En raison que Swift est un langage de typage inféré, les variables ou les constantes peuvent être inférées automatiquement à partir des valeurs stockées. Par conséquent, vous pouvez sauter le type lors de la création de variables ou de constantes. Cependant, il est recommandé de ne pas le faire pour des raisons de lisibilité.

Exemple9:Variables avec inférence de type/Constantes

let playerName = "Jack"
print(playerName)

Le compilateur Swift peut déduire automatiquement le type de la variable en fonction de sa valeur.

2. Swift est un langage de type sécurisé. Si vous définissez une variable de type, vous ne pouvez pas utiliser d'autres types de données pour la modifier par la suite.

Exemple10:Swift est un langage de type sécurisé

let playerName: String
playerName = 55 //Erreur à la compilation

Le code suivant produira une erreur car nous avons déjà spécifié que la variable playerName sera de type String. Par conséquent, nous ne pouvons pas y stocker un entier.