Conversion de Types de Base
Le transtypage est le processus de conversion de données d'un type à un autre. Cependant, il est important de noter qu'il n'est pas toujours possible de convertir des données d'un type à un autre. Par exemple, il est possible de convertir un float en int et inversement. Cependant, il n'aurait pas de sens de convertir une string en int, et cela n'est donc 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 de type float, elle est automatiquement traitée comme un float, car aucune donnée ne peut être perdue lors de la conversion (10 est équivalent à 10.0) :
index.go
1var 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.go
12345678package 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 int à l'aide d'une conversion de type explicite. En conséquence, la partie décimale du nombre d'origine 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, ce choix a été fait explicitement.
De même, nous pouvons convertir un rune en string. Dans le chapitre Runes, nous avons exploré un programme qui affichait la valeur d'un Rune, qui était un nombre. Cependant, nous pouvons afficher l'équivalent caractère d'un Rune en le convertissant en chaîne de caractères :
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Cependant, il n'est pas possible de convertir une string en rune :
index.go
12var 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.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
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
Conversion de Types de Base
Glissez pour afficher le menu
Le transtypage est le processus de conversion de données d'un type à un autre. Cependant, il est important de noter qu'il n'est pas toujours possible de convertir des données d'un type à un autre. Par exemple, il est possible de convertir un float en int et inversement. Cependant, il n'aurait pas de sens de convertir une string en int, et cela n'est donc 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 de type float, elle est automatiquement traitée comme un float, car aucune donnée ne peut être perdue lors de la conversion (10 est équivalent à 10.0) :
index.go
1var 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.go
12345678package 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 int à l'aide d'une conversion de type explicite. En conséquence, la partie décimale du nombre d'origine 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, ce choix a été fait explicitement.
De même, nous pouvons convertir un rune en string. Dans le chapitre Runes, nous avons exploré un programme qui affichait la valeur d'un Rune, qui était un nombre. Cependant, nous pouvons afficher l'équivalent caractère d'un Rune en le convertissant en chaîne de caractères :
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Cependant, il n'est pas possible de convertir une string en rune :
index.go
12var 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.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Merci pour vos commentaires !