Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Formatage de Chaîne | Types de Données
Introduction à Golang
course content

Contenu du cours

Introduction à Golang

Introduction à Golang

1. Commencer
2. Types de Données
3. Structures de Contrôle
4. Fonctions
5. Tableaux et Tranches
6. Introduction aux Structs et Maps

book
Formatage de Chaîne

Maintenant que nous avons appris tous les types de données de base, nous pouvons explorer le formatage de chaînes. En programmation, le formatage de chaînes consiste à incorporer des valeurs de variables dans des chaînes.

Remarque

L'instruction import est utilisée pour importer des packages dans une application Go. Un package est un ensemble de fichiers source Go liés qui collaborent pour offrir un ensemble de fonctionnalités ou de services. Le package fmt fournit des fonctions qui nous permettent de formater des chaînes.

Une des fonctions du package fmt que nous avons utilisée est la fonction Println. La fonction Println affiche le texte de sortie sur une nouvelle ligne à chaque fois. Cependant, il existe une fonction appelée Print qui affiche la sortie sans passer à une nouvelle ligne :

go

index

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

En général, nous pouvons utiliser ces fonctions pour insérer des valeurs de variables dans des données de chaîne en utilisant la méthode suivante :

go

index

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

Cependant, cette méthode n'est pas très efficace car nous devons diviser la chaîne en plusieurs segments pour insérer des variables aux endroits pertinents, ce qui peut devenir fastidieux dans des cas plus complexes. La fonction Printf résout ce problème et simplifie le processus d'affichage de la sortie formatée.

La fonction Printf prend une chaîne de format comme premier argument, suivie des valeurs (ou variables) à insérer dans la chaîne de format. Une chaîne de format contient des espaces réservés (spécificateurs de format) qui définissent le format souhaité de la sortie.

Voici un exemple :

go

index

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Comme illustré par l'exemple, les Spécificateurs de Format sont des symboles qui servent de substituts pour des types de données spécifiques au sein d'une chaîne de caractères. Il existe un spécificateur de format distinct pour chaque type de données. Le tableau ci-dessous fournit une liste des spécificateurs de format de base :

Spécificateur de FormatType de Données
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Les variables remplacent les substituts respectifs dans la chaîne de format. Dans la sortie de l'exemple ci-dessus, le premier %d est remplacé par la valeur de n. De même, le second est remplacé par la variable correspondante, qui est in, et le dernier %d est remplacé par la valeur de out.

Nous pouvons également formater une chaîne et la stocker dans une variable de type chaîne en utilisant la fonction Sprintf, qui formate une chaîne et renvoie la chaîne résultante pour stockage ou utilisation ailleurs, plutôt que de l'afficher immédiatement à l'écran :

go

index

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Voici un exemple plus complexe qui intègre plusieurs concepts que nous avons précédemment couverts dans un seul programme. Ce sera un exercice précieux de revoir le programme suivant et son résultat pour améliorer vos compétences en lecture de code :

go

index

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

Dans certains cas, le compilateur effectue un transtypage implicite pour faire correspondre les valeurs avec les spécificateurs de format, comme démontré dans l'exemple suivant :

go

index

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

La rune 'char' est affichée à la fois comme un caractère et comme une valeur numérique. Cependant, dans certains cas, le compilateur pourrait produire une erreur. Par exemple, le code suivant entraînera une sortie invalide car un 'float' ne peut pas être converti implicitement en 'int' :

go

index

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
Quel sera le résultat du programme ci-dessous ?

Quel sera le résultat du programme ci-dessous ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
We're sorry to hear that something went wrong. What happened?
some-alt