Conversion de types
Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 34 sur 86.
Puisque readLine() renvoie un String?, vous devrez souvent convertir cette chaîne en un nombre pour effectuer des calculs. Swift nécessite une conversion de type explicite — il ne transformera pas automatiquement une chaîne en un entier ou un double.
Pour convertir une chaîne de caractères en un entier, utilisez l'initialiseur Int(). Comme la conversion peut échouer (la chaîne pourrait contenir des lettres au lieu de chiffres), elle renvoie un optionnel :
let input = "42"
if let number = Int(input) {
print(number + 10) // Résultat: 52
}Pour les nombres décimaux, utilisez Double() :
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Résultat : 39.98
}C'est particulièrement utile pour combiner readLine() avec des opérations numériques. Vous pouvez enchaîner le déballage (unwrapping) :
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}La virgule dans l'instruction if let signifie que les deux conditions doivent réussir — l'entrée doit exister et elle doit être convertible en un entier.
Défi
FacileLisez deux entrées : un nombre décimal sous forme de chaîne de caractères et un entier sous forme de chaîne de caractères. Convertissez-les dans leurs types numériques appropriés et calculez leur produit.
Vous recevrez les entrées suivantes :
- Première ligne : Un nombre décimal (par exemple,
"3.5") - Deuxième ligne : Un entier (par exemple,
"4")
Utilisez readLine() pour lire les deux entrées. Convertissez la première entrée en un Double et la seconde en un Int. Ensuite, multipliez-les ensemble et affichez le résultat.
Utilisez if let avec un chaînage de liaisons optionnelles (optional binding) pour déballer en toute sécurité à la fois l'entrée et la valeur convertie.
Affichez : Le produit des deux nombres sous forme de Double
Aide-mémoire
Swift nécessite une conversion de type explicite entre les chaînes de caractères et les nombres.
Pour convertir une chaîne en un entier, utilisez Int(). Cela renvoie un optionnel car la conversion peut échouer :
let input = "42"
if let number = Int(input) {
print(number + 10) // Output: 52
}Pour convertir une chaîne en un nombre décimal, utilisez Double() :
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Output: 39.98
}Vous pouvez enchaîner le déballage d'optionnels avec readLine() en utilisant une virgule dans if let. Les deux conditions doivent réussir :
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}Essayez vous-même
// Lire le nombre décimal sous forme de chaîne
if let decimalString = readLine() {
// Lire l'entier sous forme de chaîne
if let intString = readLine() {
// TODO: Écrivez votre code ci-dessous
// Convertir decimalString en Double et intString en Int en utilisant if let
// Ensuite, calculer et afficher leur produit
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur ModuloAffectation composéeRécapitulatif - Mathématiques simplesOpérateurs de comparaison7Entrées/Sorties de base
Fonction PrintInterpolation de chaînesSaisie ReadLineConversion de typesRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourÉtiquettes d'argumentRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut13Itération sur les séquences
Itérer sur les élémentsLa méthode d'énumérationItérer sur les chaînes P1Itérer sur les chaînes P22Variables
Let vs VarAnnotations de typeNombresStringsBooléensConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateur ternaire8Calculateur de partage de facture
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz3Les Optionnels
Comprendre les optionnelsDéballage avec If LetL'instruction Guard LetOpérateur de fusion nilRécapitulatif - Déballage sécurisé6Prise de décision
L'instruction IfIf - ElseRécapitulatif - Calculatrice simpleL'instruction SwitchSwitch avec des intervalles9Boucles
Boucle For-InBoucle WhileBoucle Repeat-WhileBreakContinueRécapitulatif - FactorielleIntervalles dans les bouclesBoucles imbriquéesRécapitulatif - Entrée dynamique