A linguagem Rust possui os tipos de dados primitivos/básicos que são utilizados na linguagem para declaração de variáveis, constantes, parâmetros e outros:

  1. Integer
  2. Floating-point
  3. Boolean
  4. Characters
  5. Tipo derivados/refenciados
  6. Tipos dinâmicos

O uso desses tipos será visto em Variáves e Constantes. Outros tipos de dados serão vistos em suas seções específicas.

Rust possui vários tipos de dados em sua biblioteca nativa. Esses tipos serão vistos em futuras atualizações do tutorial.

O tipo de dado Integer, é dividido de acordo com o tamanho do dado utilizado para o armazenamento de informação.

Tab. 1: Tipos inteiros
# Tamanho Intervalo
i8 8-bits sinalizado -128 a 127
i16 16-bit sinalizado -32768 a 32767
i32 32-bit sinalizado -2147483648 a 2147483647
i64 64-bit sinalizado -9223372036854775808 a 9223372036854775807
u8 8-bits não sinalizado 0 a 255
u16 16-bit não sinalizado 0 a 65535
u32 32-bit não sinalizados 0 a 4294967295
u64 64-bit não sinalizado 0 a 18446744073709551615
i128 - -
isize - -
float32 ponto flutuante de 32-bits -3.4e+38 to 3.4e+38
float64 ponto flutuante de 64-bits -1.7e+308 to +1.7e+308

O tipo de dado Ponto-flutuante, é dividido em 32 e 64-bits de acordo com o tamanho do dado utilizado para o armazenamento da informação.

Sintaxe
f32
f64
Exemplo
1.99, -1.99

Por padrão, quando criamos variáveis e constantes do tipo float sem especificar o tamanho, o tipo f64 é atribuído automaticamente.

Assim como várias outras linguagens, os dois tipos de valores possíveis para o tipo de dado booleano são true e false.

Sintaxe
bool
Exemplo
true, false

Para representar os caracteres imprimíveis que utilizamos para exibição de informações processadas em nossas aplicações em Rust. Esse tipo de dado é definido com o uso de apóstrofe como delimitador.

Sintaxe
char
Exemplo
'A', 'b' e '!'

Apesar de o tipo character utilizar apenas um caracter, o informação é salva no padrão Unicode que utiliza 2 bytes para armazenar o char.

Os tipos derivados são tipos de dados que usam outros tipos em sua composição. Os tipos referenciados trabalham com endereços de memória. Abaixo alguns tipos básicos fornecidos por Rust:

Grupos de tipos de dados:
  1. String
  2. Array/Vetor
  3. Slice
  4. Tuple
  5. Struct
  6. Enum
  7. Result
  8. Option
  9. Function
  10. Ponteiro
  11. Reference

Os tipo de dado string armazena uma sequência de caracteres de texto justapostos como seus elementos. Ver string

Tab. 2: string
0 1 2 3 4 5
's' 't' 'r' 'i' 'n' 'g'
Sintaxe
str //imutável
String //mutável 
Exemplo
"um texto"

Assim como C, temos o tipo de dado derivado Array(estático) ou Vetor. Semelhante ao tipo string, possuem elementos justapostos de um determinado tipo de dado escolhido para armazenamento. Ver Array

Tab. 3: vetor
0 1 2 3 4 5 (...)
0 10 20 30 40 50 ?
Exemplo
[1, 2, 3]
['A', 'B', 'C']
['string1', 'string2']
[1.99, 2.99, 3.99]

Slice é um tipo de dado referenciado. A partir de vetores e strings podemos criar slices em Rust. Slices usam os mesmos delimitadores de corpo e elementos utilizados pelo tipo de dado array. Ver Slice

Exemplo
String: “Uma string rústica”
Slice de String: ['U','m','a']

Quando nossos programas precisam armazenar informações em forma de grupo, utilizamos o tipo de dado struct que nos possibilita a criação de tipos de dados complexos em que seus membros podem possuir diferentes tipos.

Exemplo
struct nome_struct {
	membro1: tipo_dado,
	membro1: tipo_dado
}

Todos os tipos estudados nesta seção podem ser usados como membro de uma struct. O tipo struct é um tipo mais complexo do que foi exemplificado e terá uma seção específica Rust: Struct.

Enum é um tipo de dado em que seus membros possuem um valor númerico associado. Em Rust também é possível que os membros sejam de tipos heterogêneos e possuam argumentos.

Exemplo
enum nome_enum 
{
    membro1 = 0, 
    membro2, //1
    membro3  //2
}
Exemplo
enum nome_membro {
    membro1(u32),
    membro2(bool)
}

O tipo de dado tupla(tuple), é uma tipo de dado composto/derivado de um ou mais valores de diferentes tipos. Seu corpo é delimitado por "(" e ")" e seus membros são separados por ",". Ver Tuple

Exemplo
(10,1.99,’C’)

Option é um tipo de enumerador que pode conter Some ou None. Quando temos um valor, temos Some(valor). Caso contrário, temos None. Ver Option

Exemplo
Some(10)  //valor retornado
None //sem valor

O uso mais comum do tipo Option é como retorno de funções ou métodos quando precisamos retornar um valor ou "nada"/null.

Result é um tipo de enumerador que pode conter Ok ou Err. Quando temos êxito em algo, temos Ok(valor). Caso contrário, temos Err(E). Ver Result

Exemplo
Ok(10)  //êxito
Err(E) //erro ocorrido

O uso mais comum do tipo Result é como retorno de funções ou métodos quando precisamos retornar um valor de retorno ou um erro caso ocorra.

Os tipos de dados dinâmicos são aqueles que podem ser redimensionados durante o uso de aplicações. Rust fornece nativamenta os tipos de dados dinâmicos mais comuns: Vector, HashMap e HashSet.

Exemplo
vec!["apple", "banana", "orange"]; //Vector

HashMap::from([ ("Norway", 25), ("Denmark", 24), ("Iceland", 12), ]);

HashSet::from(["Einar", "Olaf", "Harald"]);
  1. 12/11/2025 - versão inicial