English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pré-requisitos, você deve ter aprendido:Tipos de dados Golang
Quando atribuímos um valor de um tipo de dados para outro tipo de dados, ocorre uma conversão de tipo. Tipos de dados como C / C ++linguagens de tipo estático como Java fornecem suporte para conversões implícitas, mas o Golang é diferente, porque mesmo que os tipos de dados sejam compatíveis, eletambém não suportaConversão de tipo automática ou conversão implícita. A razão é que o sistema de tipos fortes do Golang não permite isso. Para conversões de tipo, é necessário executar conversões explícitas.
Como o Golang realiza conversões de tipo?
Se precisar aproveitar certas características da hierarquia de tipos de dados, devemos converter a entidade de um tipo de dados para outro. A sintaxe geral para converter o valor val para o tipo T é T(val).
var w3codebox1 int = 845 // conversão explícita de tipo var w3codebox2 float64 = float64(w3codebox1) var w3codebox3 int64 = int64(w3codebox1) var w3codebox4 uint = uint(w3codebox1)
//Calcular média package main import "fmt" func main() { var soma total int = 446 var número int = 23 var avg float32 // conversão explícita de tipo avg = float32(soma total) / float32(número) // Mostrar resultado fmt.Printf("Média = %f\n", avg) }
Saída:
Média = 19.391304
Atenção:Devido ao forte sistema de tipos do Golang, não é permitido usar tipos numéricos mistos em expressões (por exemplo, adição, subtração, multiplicação, divisão, etc.), e não é permitido executar atribuição de tipo entre tipos mistos.
var w3codebox1 int64 = 875 //ele lançará um erro de compilação para nós //porque estamos executando tipos mistos, por exemplo, somar int64como tipo int var w3codebox2 int = w3codebox1 var w3codebox3 int = 100 //ele lança um erro de compilação //Essa é uma operação inválida //porque o tipo é misto int64 e int se somar var adiciona = w3codebox1 + w3codebox3