English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manuale di base Golang

Istruzioni di controllo Golang

Funzione e metodo Golang

Struttura Golang

Tagli e array Golang

Stringa Golang (String)

Puntatore Golang

Interfaccia Golang

Golang concorrente

Eccezioni Golang (Error)

Altri argomenti Golang

Conversione di tipo Go

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