Objetivos
Tipos de dados
A linguagem Go possui quatro grupos de tipos de dados que são utilizados na linguagem para criação de variáveis,
constantes, parâmetros e outros. Abaixo a lista de grupos e posteriormentes suas definições:
Grupos de tipos de dados:
- Básicos
- Agregados
- Referências
- Interface
Outros tipos
O uso desses tipos de dados em variáveis e constantes serão visto em
Variáves e Constantes. Outros tipos de dados serão vistos
em futuras atualizações sobre a biblioteca nativa Go.
Como tipos básicos de dados, a linguagem Go fornece: String, Bool e
Number. Esses tipos serão vistos de forma básica nesta seção sendo vistos
com mais detalhes em futuras seções.
O tipo Number é compreendido nos tipos informados na tabela abaixo. Os tipos de dados
sinalizados, não sinalizados, intervalo de dados foram estudados em Tutorial C e podem ser usados como base.
| Tipo |
Descrição |
Intervalo |
| int8 |
inteiro 8-bits sinalizado |
-128 a 127 |
| int16 |
inteiro 16-bit sinalizado |
-32768 a 32767 |
| int32, int |
inteiro 32-bit sinalizados |
-2147483648 a 2147483647 |
| int64 |
inteiro 64-bit sinalizado |
-9223372036854775808 a 9223372036854775807 |
| uint8,byte |
inteiro 8-bits não sinalizado |
0 a 255 |
| uint16 |
inteiro 16-bit não sinalizado |
0 a 65535 |
| uint32,uint |
inteiro 32-bit não sinalizados |
0 a 4294967295 |
| uint64 |
inteiro 64-bit não sinalizado |
0 to 18446744073709551615 |
| uintptr |
tipo de dado não sinalizado |
- |
| float32 |
ponto flutuante de 32-bits |
-3.4e+38 to 3.4e+38 |
| float64 |
ponto flutuante de 32-bits |
-1.7e+308 to +1.7e+308 |
Os tipos de dados int e uint em plataformas de 64-bits possuem respectivamente um
intervalo de dados -9223372036854775808 a 9223372036854775807 e 0 a 18446744073709551615.
A linguagem Go permite a atribuição de valores numéricos em formato hexadecimal, octal
e binário como em outras linguagens.
Os tipos bool(Boolean) em Go armazem valores true e false assim
como em várias outras linguagens com C++, C# e Java.
Sintaxe
bool
Exemplo
true, false
Os tipos de dados string armazenam sequência de caracteres de texto, justapostos,
em seu conteúdo.
Sintaxe
string
Exemplo
"um texto"
Abaixo uma abstração de uma string em memória.
Tab. 1: string
| 0 |
1 |
2 |
3 |
4 |
5 |
| 's' |
't' |
'r' |
'i' |
'n' |
'g' |
Em Go uma string é imutável. Em
Strings vamos ver mais sobre esse tipo de
dado como comparação, cópia e outras operações.
Tipos Agregados/Derivados
Os tipos de dados derivados, são tipos de dados compostos em outros tipos de dados.
A linguagem Go fornece os seguintes tipos de dados:
Tab. 2: Tipos agregados
| Tipo |
Uso |
Exemplo |
Seção |
| Vetor(Array) |
variáveis |
1,2,3,... |
Vetor |
| Matriz(Array 2d) |
matrizes |
- |
Matriz |
| Struct |
Tipos complexos |
- |
Struct |
Vetor
O tipo Vetor armazenam dados de forma justaposta. O nome vetor não é palavra reconhecida
pela linguagem Go sendo um apelido para o termo array.
Tab. 3: vetor
| 0 |
1 |
2 |
3 |
4 |
5 |
(...) |
| 0 |
10 |
20 |
30 |
40 |
50 |
? |
Matriz
Uma matriz é um vetor multidimensional(2d) que armazenam dados de forma justaposta.
O nome matriz não é palavra reconhecida pela linguagem Go sendo um apelido para
o termo array de duas dimensões.
Tab. 4: Matriz
| L/C |
0 |
1 |
2 |
| 0 |
10 |
20 |
30 |
| 1 |
40 |
50 |
60 |
| 2 |
70 |
80 |
90 |
Struct
O tipo struct é composto de outros tipos primitivos númericos, booleanos , string e
outros como seus membros.
Tab. 5: Abstração de Struct
| uint8 |
String |
float32 |
| 1 |
"tênis" |
150,50 |
A linguagem Go não tem suporte ao tipo de da union presente em linguagens como C
e C++.
Os tipos de dados referenciados armazenam endereços de memória. linguagem Go fornece os
seguintes tipos de dados:
Tab. 6: Tipos Referenciados
| Tipo |
Exemplo |
Seção |
| Ponteiros |
*p |
Visitar |
| Reference |
&ref |
Visitar |
| Slices |
- |
Visitar |
| Map |
- |
Visitar |
| Function |
- |
Visitar |
Channels |
- |
Visitar |
Ponteiro
O tipo Ponteiro armazenada endereço de memérios de variáveis funções e outros.
O termo Ponteiro não é uma palavra reconhecida pela linguagem Go sendo apelido
para o tipo de dado que é declarado utilizando o operador *.
Reference
Um tipo de dado semelhante ao ponteiro, mas não permite aritmética. Esse tipo de dado
é declarado utilizando o operador &.
Slice
Um tipo de dados semelhante a um vetor. Mais sobre esse tipo pode ser visto em
Slice
Map
Estrutura de dados dinâmica que armazena em seu conteúdo elementos no formato
chave-valor. Mais sobre esse tipo pode ser visto em Map
Linguagem Go permite a utilização de interface, conceito trazido de linguagens O.O.
Esse tipo de dados armazena em seu corpo apenas assinaturas de métodos que devem
ser implementados.
Nesse tipo de dado apenas a assinatura de métodos/funções são declarados que são
implementados posteriormente
Sintaxe
type minha_interface interface {
nome_metodo(<parametros>) tipo_retorno
}
Mais sobre esse tipo de dado pode ser visto em
Interface onde vamos aprender a
declarar e implementar métodos.
A linguagem Go possui a palavra reservada nil que é utilizado nos tipos de
dados de referência como ponteiros, funções e outros para informar que não faz
referência a algum recurso de memória.
Sintaxe
nil
Histórico de atualizações
- 08/09/2025 - revisão 4 - Ajustes: pontuais, target de links e objetivos; Adição: links internos map e slice
- 16/09/2024 - revisão 3 - Ajustes gramaticais
- 30/08/2024 - revisão 2 - Correção em link tipo nil
- 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais
- 21/08/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.