Maison >développement back-end >Golang >type de changement de golang
Golang est un langage de programmation très populaire. Ces dernières années, avec le développement de Go, de plus en plus de développeurs ont commencé à utiliser Go pour écrire des applications et des services. En tant que langage typé statiquement, Go est très strict lors de la déclaration des variables et des types de données, et vérifie si ces variables et types de données correspondent lors de la compilation du code. Cependant, nous devons parfois modifier des variables ou des types de données. À l'heure actuelle, la conversion de type de Golang est très pratique. Cet article explorera comment la conversion de type est effectuée dans Golang et dans quelles circonstances la conversion de type est requise.
En Golang, la syntaxe de conversion de type est très simple. Il vous suffit d'ajouter le nom du type à convertir devant la valeur à convertir pour terminer la conversion de type. Par exemple, pour convertir un entier en type float :
var x int = 10 var f float64 = float64(x)
Cela convertit x en type float64 et attribue le résultat à f.
Lors de la conversion de types, vous devez faire attention aux points suivants :
var x int = 10 var y float64 = x // 错误,需要明确转换为float64类型
s := "123" i := int(s) // 错误:无法将字符串转换为整数
type Foo struct { X int Y float64 } type Bar struct { X string Y float32 } func main() { f := Foo{10, 20.5} b := Bar{strconv.Itoa(f.X), float32(f.Y)} fmt.Println(b) }
Dans l'exemple ci-dessus, nous convertissons le type Foo en type Bar. Puisqu'il n'y a pas de relation de conversion directe entre les deux types, nous devons convertir manuellement chaque membre de Foo vers le type correspondant dans Bar.
Dans les programmes Golang, nous pouvons rencontrer des scénarios qui nécessitent une conversion de type. Les scénarios suivants nécessitent une conversion de type :
i := 10 s := strconv.Itoa(i) // 将整数转换为字符串 f := 3.14 sf := strconv.FormatFloat(f, 'f', 2, 64) // 将浮点数转换为字符串
Itoa() convertit un entier en chaîne et la fonction FormatFloat() convertit un nombre à virgule flottante en chaîne. Dans la fonction FormatFloat(), le premier paramètre est le nombre à virgule flottante à convertir, le deuxième paramètre « f » signifie la conversion en un nombre à virgule flottante ordinaire, le troisième paramètre 2 signifie conserver 2 décimales et le quatrième paramètre 64 signifie Préserve la précision des nombres à virgule flottante jusqu'à 64 bits.
s := "10" i, err := strconv.Atoi(s) // 将字符串转换为整数 f, err := strconv.ParseFloat(s, 64) // 将字符串转换为浮点数 b, err := strconv.ParseBool("true") // 将字符串转换为布尔变量
Dans le code ci-dessus, la fonction Atoi() convertit la chaîne en entier, la fonction ParseFloat() convertit la chaîne en nombre à virgule flottante et la fonction ParseBool() convertit la chaîne en booléen. variable. Il convient de noter que la valeur de retour err peut être utilisée pour déterminer si la conversion a réussi afin d'éviter les exceptions du programme causées par des erreurs de conversion.
type Source struct { X int Y float64 } type Target struct { X string Y float32 } func main() { s := Source{10, 20.5} t := Target{strconv.Itoa(s.X), float32(s.Y)} fmt.Println(t) }
Dans l'exemple ci-dessus, nous avons converti le type Source en type Target.
value, ok = expression.(T)
Parmi eux, l'expression représente la valeur à convertir ; T représente le type cible ; la valeur représente la valeur obtenue après la conversion ; ok est une variable de type booléen, indiquant si la conversion est effectuée ; réussi. Par exemple :
var val interface{} val = 10 i, ok := val.(int) // 将接口类型转换为整数类型 if ok { fmt.Println(i) }
Dans le code ci-dessus, nous convertissons le type d'interface en type entier. Grâce à l'assertion de type, val est converti avec succès en un type entier, puis la valeur est imprimée.
La conversion de type est un élément important de Golang qui peut nous aider à mapper certains types de données à d'autres types de données. Lors de la conversion de type, vous devez faire attention aux problèmes de compatibilité entre les types de données pour éviter les erreurs de compilation ou d'exécution. La syntaxe de conversion de type de Golang est simple et facile à comprendre, et nous pouvons gérer différents problèmes de conversion de types de données en fonction de besoins spécifiques. En maîtrisant les connaissances sur la conversion de types, nous pouvons gérer plus librement divers besoins de conversion de types de données dans les programmes Golang.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!