[Golang] La sintaxis básica de la conversión de tipo de datos

En algunos lenguajes de programación existe conversión implícita, por ejemplo, JavaScript.

var a = 10 
var b = "a"
console.log(a + b) // 10a

La conversión implícita código js anterior se produce durante la ejecución, el número de tipo de variable conversión automática a una cadena, y el tipo de cadena b después de realizar la adición, la concatenación de cadenas se produce.

Pero esta conversión implícita, que es el idioma ir no existe.

Donde ir necesario, lo que permite un valor en un tipo de valor a otro tipo. Pero todos los moldes deben mostrar la declaración salieron.

Ejemplo:

valTypeB = TypeB(valTypeA)

valor Tipo B = (valor de un tipo) Tipo B de la

Por ejemplo el siguiente ejemplo:

// 定义一个变量
var s1 string = "hello,world"
var a = []byte(s1) // 将字符串转换为数组
var n1 float64 = 1.0
var b int = int(n1) // 将float64转换为整型

Tipo de conversión sólo bajo la definición de una conversión exitosa es correcta, por ejemplo, de un rango más pequeño a un tipo más grande de una gama de tipos (Int16 se convierte en el int32). Cuando una conversión de tipo de una mayor a una gama más pequeña en el intervalo de tipo (que se convierte en la Int16 int32 o int convert float32), donde se puede producir pérdida de precisión (corte).

Sólo conversión puede llevarse a cabo entre el mismo tipo de subyacente variable (por ejemplo, convertido en un tipo int32 Int16), un error de compilación causa diferentes tipos de subyacente de conversión variable (por ejemplo, convierte a un bool int):

// int 32 最大值:2147483647
var n1 int64 = 2147483648
var n2 int32 = int32(n1)
fmt.Println(n2) // -2147483648
// 底层不同的数据进行转换
var b1 bool = true
var n1 int = int(b1)
fmt.Println(n1) // cannot convert b1 (type bool) to type int

Supongo que te gusta

Origin www.cnblogs.com/liujunhang/p/12534420.html
Recomendado
Clasificación