Objetivos
Tipos de dados
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.
Tipos referenciados e derivados
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:
- String
- Array/Vetor
- Slice
- Tuple
- Struct
- Enum
- Result
- Option
Function
Ponteiro
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"]);
Histórico de atualizações
- 12/11/2025 - 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.