Skip to content

Tipos de Dados do Go

Abaixo estão listados todos os tipos incorporados na linguagem Go, para referência, mais detalhes podem ser encontrados no Manual de Referência - Tipos.

Tipo Booleano

O tipo booleano tem apenas valor verdadeiro e valor falso.

TipoDescrição
booltrue é valor verdadeiro, false é valor falso

TIP

Em Go, o inteiro 0 não representa valor falso, e inteiros não-nulos também não representam valor verdadeiro, ou seja, números não podem substituir valores booleanos em julgamentos lógicos, os dois são tipos completamente diferentes.

Tipo Inteiro

Em Go, diferentes tipos são alocados para inteiros de diferentes tamanhos de bits, principalmente divididos em inteiros sem sinal e inteiros com sinal.

NúmeroTipo e Descrição
uint8Inteiro sem sinal de 8 bits
uint16Inteiro sem sinal de 16 bits
uint32Inteiro sem sinal de 32 bits
uint64Inteiro sem sinal de 64 bits
int8Inteiro com sinal de 8 bits
int16Inteiro com sinal de 16 bits
int32Inteiro com sinal de 32 bits
int64Inteiro com sinal de 64 bits
uintInteiro sem sinal, pelo menos 32 bits
intInteiro, pelo menos 32 bits
uintptrEquivalente ao inteiro sem sinal de 64 bits, mas especializado para armazenar operações de ponteiro, usado para armazenar endereços de ponteiro imutáveis.

Tipo Ponto Flutuante

Números de ponto flutuante IEEE-754, principalmente divididos em números de ponto flutuante de precisão simples e números de ponto flutuante de precisão dupla.

TipoTipo e Descrição
float32Número de ponto flutuante IEEE-754 de 32 bits
float64Número de ponto flutuante IEEE-754 de 64 bits

Tipo Número Complexo

TipoDescrição
complex128Números reais e imaginários de 64 bits
complex64Números reais e imaginários de 32 bits

Tipo Caractere

A linguagem Go é totalmente compatível com strings UTF-8

TipoDescrição
byteEquivalente a uint8, pode expressar caracteres ASCII
runeEquivalente a int32, pode expressar caracteres Unicode
stringString é uma sequência de bytes, pode ser convertida para o tipo []byte, ou seja, slice de bytes

Tipos Derivados

TipoExemplo
Array[5]int, array de inteiros com comprimento 5
Slice[]float64, slice de números de ponto flutuante de 64 bits
Mapamap[string]int, mapa com chave do tipo string e valor do tipo inteiro
Structtype Gopher struct{}, struct Gopher
Ponteiro*int, um ponteiro de inteiro.
Funçãotype f func(), um tipo de função sem parâmetros e sem valor de retorno
Interfacetype Gopher interface{}, interface Gopher
Canalchan int, canal de inteiros

Valor Zero

Na documentação oficial o valor zero é chamado de zero value, o valor zero não é apenas o número zero literalmente, mas sim um valor vazio ou valor padrão de um tipo.

TipoValor Zero
Tipos numéricos0
Tipo booleanofalse
Tipo string""
ArrayColeção de valores zero dos tipos correspondentes com comprimento fixo
StructStruct com todos os campos internos como valores zero
Slice, mapa, função, interface, canal, ponteironil

nil

nil é semelhante a none ou null em outras linguagens, mas não é equivalente. nil é apenas o valor zero de alguns tipos de referência, e não pertence a nenhum tipo, pode-se ver pelo código fonte que nil é apenas uma variável.

go
var nil Type

E uma instrução como nil == nil não pode compilar.

Golang por www.golangdev.cn edit