Conteúdo
Tipos de dados básicos
Os tipos de dados básicos são como blocos construtores que servem de base das estruturas de dados em Go. Compõem essa categoria: os tipos numéricos inteiros (int), de ponto flutuante (float) e complexos* (complex), a cadeia de caracteres (string) e os booleanos (bool). Algumas bibliografias também os chamam de “tipos embutidos”, por serem os tipos primitivos oferecidos pela linguagem.
* não abordaremos
Numéricos
Os tipos numéricos podem ser inteiros, de ponto flutuante ou complexos. Cada tipo vai possuir um tamanho em bits, armazenando mais informação quanto maior o tamanho, por exemplo: int32 com 32 bits, int64 com 64 bits.
É possível realizar operações matemáticas com os tipos numéricos, usando os operadores +
, -
, /
, *
. Operações com tipos distintos falharão em tempo de compilação.
Inteiros
Além da indicação da quantidade de bits, inteiros também podem ser com sinal (int) ou sem sinal (uint - u de unsigned, do inglês, sem sinal). Inteiros sem sinal (uint) conseguem representar números maiores do que as versões com sinal com a mesma quantidade de bits, por descartar os números negativos.
Seu valor zero é 0
.
Exemplos de declaração:
Para entendermos melhor o que significa o número que aparece após "int", vamos explorar o tipo uint8.
uint8
u de unsigned = sem sinal (absoluto)
int = tipo numérico inteiro
8 = ocupa 8 bits (8 posições 0 ou 1)
Ou seja, um uint8, também conhecido pelo alias (apelido) byte, comporta números inteiros de 0 a 255, pois suas 8 posições permitem 256 combinações. Como a imagem abaixo ilustra, todas as 8 posições são utilizadas para representação do valor, diferentemente do tipo int8
, que é um int com 8 bits e com sinal (sem u na frente), que precisa de um bit para indicar + ou -.
Exemplo: operação matemática com inteiros
Ponto Flutuante
Números de ponto flutuante representam números reais (racionais e irracionais) que não podem ser expressos como inteiros. No contexto de Go, floats são números com casas decimais.
Exemplo de declaração:
Strings
Strings são cadeias de caracteres, normalmente contém texto legível por seres humanos, e podem ser constantes ou variáveis. São sinalizadas por aspas duplas (") ou acento grave (`), dependendo das características necessárias a elas.
Seu valor zero é ""
(string vazia).
Exemplo de declaração:
Literais de string interpretadas
As "literais de string interpretadas", tradução livre do inglês interpreted string literals, são sinalizadas com aspas duplas, e permitem que sinalizadores chamados "caracteres de escape" sejam interpretados pelo compilador. Todos os caracteres de escape começam com a barra invertida. Por exemplo, \n
e \t
são interpretados como quebra de linha e recuo horizontal, respectivamente.
O exemplo abaixo vai ilustrar isso:
O resultado será o seguinte:
Literais de string brutas
Diferentemente das strings interpretadas, as "literais de string brutas", tradução livre do inglês "raw string literals", sinalizam que toda formatação dentro de uma string deve ser ignorada. Os valores são declarados usando acento grave, e sua sintaxe é a seguinte:
Para ilustrar a diferença entre literais de string interpretadas e brutas, vamos repetir o exemplo acima, mas agora usando acento grave:
Nesse caso, usando literal de string bruta, qual deve ser a saída?
Booleanos
O tipo booleano (bool) só aceita dois valores: verdadeiro ou falso. É usado para o resultado de comparações ou condicionais, por exemplo:
A é maior que B?
Está chovendo agora?
Estes exemplos são usados nas condicionais if
e nos operadores de comparação: ==
, <
, >
, <=
, entre outros.
É possível combinar operadores lógicos &&
(e), ||
(ou), e !
(não) para criar lógicas do tipo: SE eu estiver disposto && o dia estiver ensolarado ENTÃO eu vou à praia.
Seu valor zero é false
.
Exemplo de declaração:
Last updated