English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Prerequisiti, dovresti aver imparato:Tipi di dati Golang
Quando assegniamo un valore di un tipo di dati a un altro tipo di dati, si verifica una conversione di tipo. Le lingue di programmazione statiche come C / C ++, Java forniscono supporto per la conversione implicita di tipo, ma il Golang è diverso, perché anche se i tipi di dati sono compatibili, essoNon supportataConversione automatica di tipo o conversione implicita di tipo. Il motivo è che il sistema di tipi forti del Golang non permette questo. Per la conversione di tipo, è necessario eseguire la conversione esplicita.
Come effettua il tipo di conversione il Golang?
Se si desidera utilizzare alcune caratteristiche della gerarchia dei tipi dei dati, dobbiamo convertire l'entità da un tipo di dati a un altro tipo di dati. La sintassi generale per convertire il valore val in tipo T è T(val).
var w3codebox1 int = 845 //Conversione esplicita di tipo var w3codebox2 float64 = float64(w3codebox1) var w3codebox3 int64 = int64(w3codebox1) var w3codebox4 uint = uint(w3codebox1)
//Calcolo della media package main import "fmt" func main() { var totalsum int = 446 var number int = 23 var avg float32 //Conversione esplicita di tipo avg = float32(totalsum) / float32(number) //Mostra il risultato fmt.Printf("Media = %f\n", avg) }
Output:
Media = 19.391304
Attenzione:Poiché il Golang ha un sistema di tipi forte, non è permesso utilizzare tipi numerici misti negli espressioni (ad esempio somma, sottrazione, moltiplicazione, divisione, ecc.) e non è permesso eseguire assegnazioni di tipo tra tipi misti.
var w3codebox1 int64 = 875 //Genera un errore in fase di compilazione //Poiché stiamo eseguendo un tipo misto, ad esempio utilizzare int64 come tipo int var w3codebox2 int = w3codebox1 var w3codebox3 int = 100 //Lancia un errore in fase di compilazione //Operazione non valida //Perché i tipi sono misti, somma di int64 e int var addition = w3codebox1 + w3codebox3