English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Prérequis, vous devriez avoir appris :Types de données Golang
Lorsque nous assignons une valeur d'un type de données à un autre type de données, une conversion de type se produit. Les types de données tels que C / C ++Les langages de type statique tels que Java fournissent un soutien pour la conversion implicite de type, mais Golang est différent, car même si les types de données sont compatibles, ilne prend pas non plus en chargeConversion de type automatique ou implicite. Les raisons sont que le système de type fort de Golang ne permet pas cela. Pour la conversion de type, une conversion explicite doit être effectuée.
Comment Golang effectue-t-il la conversion de type ?
Si vous avez besoin d'utiliser certaines caractéristiques de l'hierarchie des types de données, nous devons convertir l'entité d'un type de données à un autre. La syntaxe générale pour convertir une valeur val en type T est T(val).
var w3codebox1 int = 845 // Conversion de type explicite var w3codebox2 float64 = float64(w3codebox1) var w3codebox3 int64 = int64(w3codebox1) var w3codebox4 uint = uint(w3codebox1)
//Calculer la moyenne package main import "fmt" func main() { var totalsum int = 446 var number int = 23 var avg float32 // Conversion de type explicite avg = float32(totalsum) / float32(number) // Afficher le résultat fmt.Printf("Moyenne = %f\n", avg) }
Sortie :
Moyenne = 19.391304
Remarque :En raison du système de type puissant de Golang, il n'est pas permis de mélanger les types numériques dans les expressions (par exemple, addition, soustraction, multiplication, division, etc.), et il n'est pas permis d'effectuer une attribution de type entre deux types mélangés.
var w3codebox1 int64 = 875 //Il nous lève une erreur à la compilation //parce que nous exécutons un type mélangé, par exemple int64en tant que type int var w3codebox2 int = w3codebox1 var w3codebox3 int = 100 //Il lève une erreur à la compilation //C'est une opération invalide //parce que le type est mélangé int64 et int se joint var addition = w3codebox1 + w3codebox3