English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
requisitos previos, debería haber aprendido:tipos de datos de Golang
cuando asignamos un valor de un tipo de datos a otro tipo de datos, ocurre una conversión de tipos. Los tipos de datos como C / C ++Los lenguajes de programación estáticos de tipo estático como Java proporcionan soporte para la conversión implícita de tipos, pero Golang es diferente, porque incluso si los tipos de datos son compatibles, estampoco admiteconversión automática de tipos o conversión implícita. La razón es que el sistema de tipos fuerte de Golang no permite esto. Para la conversión de tipos, debe realizarse una conversión explícita.
¿Cómo realiza Golang la conversión de tipos?
Si necesita utilizar ciertas características de la jerarquía de tipos de datos, debemos convertir la entidad de un tipo de datos a otro. La sintaxis general para convertir el valor val a un tipo T es T(val).
var w3codebox1 int = 845 // conversión explícita de tipo var w3codebox2 flotante64 = flotante64(w3codebox1) var w3codebox3 int64 = int64(w3codebox1) var w3codebox4 uint = uint(w3codebox1)
//calcular el promedio paquete principal import "fmt" func main() { var totalsum int = 446 var número int = 23 var avg flotante32 // conversión explícita de tipo avg = flotante32(totalsum) / flotante32(número) // mostrar resultados fmt.Printf("promedio = %f\n", avg) }
salida:
promedio = 19.391304
Atención:Debido a que Golang tiene un sistema de tipos fuerte, no se permite mezclar tipos de números en expresiones (por ejemplo, suma, resta, multiplicación, división, etc.), y no se permite realizar asignaciones de tipos entre tipos mixtos.
var w3codebox1 int64 = 875 //nos lanzará un error en tiempo de compilación //porque se está ejecutando un tipo mixto, por ejemplo, int64como tipo int var w3codebox2 int = w3codebox1 var w3codebox3 int = 100 //lanza un error en tiempo de compilación //es una operación inválida //porque el tipo es mixto int64 y int var addition = w3codebox1 + w3codebox3