Contenu du cours
Introduction à Golang
Introduction à Golang
Conversion de Type de Base
Le transtypage est le processus de conversion de données d'un type de données à un autre. Cependant, il est important de noter qu'il n'est pas toujours possible de convertir des données d'un type de données à un autre. Par exemple, nous pouvons convertir un float
en un int
et vice versa. Cependant, il ne serait pas logique de convertir une string
en un int
, et donc ce n'est pas possible.
Il existe deux types de conversions de type ou de transtypage. L'un d'eux est le transtypage implicite. Le transtypage implicite se produit lorsque Go convertit automatiquement un type en un autre lorsqu'il est sûr et sans ambiguïté. Par exemple, lorsque nous assignons une valeur entière à une variable flottante, elle est traitée automatiquement comme un flottant, car aucune donnée ne peut être perdue lors de la conversion (10
est le même que 10.0
) :
index
var myFloat float32 = 10 // A valid statement
L'autre type de conversion de type est la Conversion de Type Explicite, qui se produit lorsque le programmeur convertit explicitement des données ou des expressions d'un type à un autre. La syntaxe pour la conversion de type explicite est desiredType(expression)
, par exemple :
index
package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
Dans le programme ci-dessus, nous convertissons une valeur float32
en un int
en utilisant la conversion de type explicite. En conséquence, la partie décimale du nombre original est supprimée, et seule la valeur entière 7
est stockée dans number2
. Il est important de noter que dans ce cas, certaines données sont perdues, en particulier la partie décimale du nombre (0.9
). Cependant, nous avons fait ce choix explicitement.
De même, nous pouvons convertir un rune
en une string
. Dans le chapitre Runes, nous avons exploré un programme qui affichait la valeur d'une Rune, qui était un nombre. Cependant, nous pouvons afficher l'équivalent caractère d'une Rune en la convertissant en une chaîne de caractères :
index
package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Cependant, nous ne pouvons pas convertir une string
en un rune
:
index
var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Il est important de noter que nous ne pouvons pas non plus convertir une chaîne contenant un seul caractère en rune :
index
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Merci pour vos commentaires !