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

Tutorial básico Golang

Sentença de controle Golang

Função & Método Golang

Estrutura Golang

Fatia & Array Golang

String Golang

Ponteiro Golang

Interface Golang

Concorrência Golang

Exceção (Error) Golang

Outros itens Golang

Conversão de Tipo do Go

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