Skip to content

Tipos de datos en Go

A continuación se listan todos los tipos incorporados en Go, para referencia, para más detalles puedes visitar Manual de referencia-Tipos.

Tipo booleano

El tipo booleano solo tiene valores verdadero y falso.

TipoDescripción
booltrue es valor verdadero, false es valor falso

TIP

En Go, el entero 0 no representa el valor falso, y el entero diferente de cero tampoco representa el valor verdadero, es decir, los números no pueden sustituir a los valores booleanos en las evaluaciones lógicas, son tipos completamente diferentes.

Tipos enteros

Go asigna diferentes tipos para enteros de diferentes bits, principalmente divididos en enteros sin signo y enteros con signo.

NúmeroTipo y descripción
uint8Entero sin signo de 8 bits
uint16Entero sin signo de 16 bits
uint32Entero sin signo de 32 bits
uint64Entero sin signo de 64 bits
int8Entero con signo de 8 bits
int16Entero con signo de 16 bits
int32Entero con signo de 32 bits
int64Entero con signo de 64 bits
uintEntero sin signo, al menos 32 bits
intEntero, al menos 32 bits
uintptrEquivalente al entero sin signo de 64 bits, pero especializado para almacenar operaciones de punteros, usado para almacenar direcciones de puntero.

Tipos de punto flotante

Números de punto flotante IEEE-754, principalmente divididos en números de punto flotante de precisión simple y de precisión doble.

TipoTipo y descripción
float32Número de punto flotante IEEE-754 de 32 bits
float64Número de punto flotante IEEE-754 de 64 bits

Tipos de números complejos

TipoDescripción
complex128Números reales e imaginarios de 64 bits
complex64Números reales e imaginarios de 32 bits

Tipos de caracteres

El lenguaje Go es completamente compatible con UTF-8

TipoDescripción
byteEquivalente a uint8, puede expresar caracteres ANSCII
runeEquivalente a int32, puede expresar caracteres Unicode
stringUna cadena es una secuencia de bytes, se puede convertir al tipo []byte es decir slice de bytes

Tipos derivados

TipoEjemplo
Array[5]int, array de enteros de longitud 5
Slice[]float64, slice de números de punto flotante de 64 bits
Mapamap[string]int, mapa con claves de tipo string y valores de tipo entero
Estructuratype Gopher struct{}, estructura Gopher
Puntero*int, un puntero a entero.
Funcióntype f func(), un tipo de función sin parámetros ni valor de retorno
Interfaztype Gopher interface{}, interfaz Gopher
Canalchan int, canal de enteros

Valor cero

En la documentación oficial el valor cero se llama zero value, el valor cero no es solo el número cero literalmente, sino que es más preciso llamarlo valor vacío o valor por defecto de un tipo.

TipoValor cero
Tipos numéricos0
Tipo booleanofalse
Tipo cadena""
ArrayColección de valores cero del tipo correspondiente de longitud fija
EstructuraEstructura con todos los campos internos en valor cero
Slice, mapa, función, interfaz, canal, punteronil

nil

nil es similar a none o null en otros lenguajes, pero no es equivalente. nil es solo el valor cero de algunos tipos de referencia, y no pertenece a ningún tipo, se puede ver en el código fuente que nil es solo una variable.

go
var nil Type

Y una sentencia como nil == nil no puede compilar.

Golang editado por www.golangdev.cn