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.
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 para armazenar ponteiro |
- |
- |
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 utilizando a notação (0x) assim
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#, Java e outros.
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
"string"
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.
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:
Os tipos Vetor armazenam dados de forma justaposta. O nome vetor não é palavras reconhecidas 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 é uma vetor multidimensional(2d) que armazenam dados de forma justaposta. O nome matriz não é palavras
reconhecidas pela linguagem Go sendo um apelido para o termo array multidimensional.
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 |
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 apelidos 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ânima 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 não foi iniciado ou não é mais referenciado.
Sintaxe
nil
Histórico de atualizações
- 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.