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

bookFormatage de Chaînes

Maintenant que nous avons étudié tous les types de données de base, nous pouvons explorer le formatage de chaînes. En programmation, le formatage de chaînes consiste à intégrer des valeurs de variables dans des chaînes de caractères.

Remarque

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

L'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 :

index.go

index.go

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

En général, ces fonctions permettent d’insérer des valeurs de variables dans des données de type chaîne en utilisant la méthode suivante :

index.go

index.go

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 il faut diviser la chaîne en plusieurs segments pour insérer les variables aux endroits appropriés, 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 sorties formatées.

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.

L'exemple suivant illustre ce concept :

index.go

index.go

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 servant de repères 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ée. Le tableau ci-dessous présente une liste des principaux spécificateurs de format :

Spécificateur de formatType de données
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Les variables remplacent les espaces réservés correspondants 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.

Il est également possible de formater une chaîne et de la stocker dans une variable de type chaîne à l'aide de la fonction Sprintf, qui formate une chaîne et retourne la chaîne résultante pour un stockage ou une utilisation ultérieure, au lieu de l'afficher immédiatement à l'écran :

index.go

index.go

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 déjà abordés dans un seul programme. Il s'agit d'un exercice utile pour revoir le programme suivant et sa sortie afin d'améliorer vos compétences en lecture de code :

index.go

index.go

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 une conversion de type implicite pour faire correspondre les valeurs avec les spécificateurs de format, comme le montre l'exemple suivant :

index.go

index.go

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 peut générer une erreur. Par exemple, le code suivant produira une sortie invalide car un 'float' ne peut pas être converti implicitement en 'int' :

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Quelle sera la sortie du programme ci-dessous ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 1.96

bookFormatage de Chaînes

Glissez pour afficher le menu

Maintenant que nous avons étudié tous les types de données de base, nous pouvons explorer le formatage de chaînes. En programmation, le formatage de chaînes consiste à intégrer des valeurs de variables dans des chaînes de caractères.

Remarque

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

L'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 :

index.go

index.go

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

En général, ces fonctions permettent d’insérer des valeurs de variables dans des données de type chaîne en utilisant la méthode suivante :

index.go

index.go

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 il faut diviser la chaîne en plusieurs segments pour insérer les variables aux endroits appropriés, 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 sorties formatées.

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.

L'exemple suivant illustre ce concept :

index.go

index.go

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 servant de repères 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ée. Le tableau ci-dessous présente une liste des principaux spécificateurs de format :

Spécificateur de formatType de données
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Les variables remplacent les espaces réservés correspondants 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.

Il est également possible de formater une chaîne et de la stocker dans une variable de type chaîne à l'aide de la fonction Sprintf, qui formate une chaîne et retourne la chaîne résultante pour un stockage ou une utilisation ultérieure, au lieu de l'afficher immédiatement à l'écran :

index.go

index.go

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 déjà abordés dans un seul programme. Il s'agit d'un exercice utile pour revoir le programme suivant et sa sortie afin d'améliorer vos compétences en lecture de code :

index.go

index.go

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 une conversion de type implicite pour faire correspondre les valeurs avec les spécificateurs de format, comme le montre l'exemple suivant :

index.go

index.go

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 peut générer une erreur. Par exemple, le code suivant produira une sortie invalide car un 'float' ne peut pas être converti implicitement en 'int' :

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Quelle sera la sortie du programme ci-dessous ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
some-alt