Tipos de Dados em Rust
Tipos de Dados em Rust
Os valores dos dados que são processados e armazenados, no Rust, são classificados em um determinado tipo de dados, de modo que o Rust saiba como lidar com cada dado em particular.
O Rust é uma linguagem de tipagem estática, o que significa que ela precisa saber os tipos de todas as variáveis em tempo de compilação.
Os tipos de dados em Rust são divididos em duas grandes categorias: Tipos Escalares e Tipos Compostos. Neste tutorial vamos nos focar nos tipos escalares em Rust, e no próximo, estudaremos os tipos compostos.
Tipos Escalares em Rust
Um tipo escalar representa um valor único. A linguagem Rust possui suporte a quatro tipos escalares primários, que são:
- Tipo Inteiro
- Ponto-Flutuante
- Booleano (Lógico)
- Caracteres
Vamos estudar cada tipo separadamente.
Tipo Inteiro em Rust
Se refere a números sem uma parte decimal (fracionária). Os principais tipos inteiros em Rust são:
Tabela 1.1: Tipos Inteiros em Rust
Comprimento | Com Sinal | Sem Sinal |
---|---|---|
8 bits | i8 | u8 |
16 bits | i16 | u16 |
32 bits | i32 | u32 |
64 bits | i64 | u64 |
128 bits | i128 | u128 |
Com sinal e sem sinal indicam se o número pode ser negativo (com ou sem sinal de negativo: -).
O tipo inteiro padrão em Rust é o i32.
Exemplo:
fn main() { let a = 90; let g: u32 = 100; println!("Tipo Inteiro: {}", a); println!("Outro dado inteiro: {}", g); }
Tipo de Ponto Flutuante em Rust
Tipos de ponto flutuante são aqueles que representam as casas decimais – são os números quebrados, coloquialmente.
Em Rust os tipos de ponto flutuante são f32 e f64, de tamanhos 32 e 64 bits, respectivamente. O padrão é o tipo f64, e ambos os tipos possuem sinal.
O tipo f32 é de precisão simples (“float“), e o tipo f64, de precisão dupla (“double“).
Exemplo:
fn main() { let b: f32 = 3.1415; println!("{}", b); }
Tipo Booleano
Um tipo booleano é um tipo lógico, que suporta apenas dois valores possíveis: true e false (verdadeiro e falso). Este tipo possui tamanho de um byte, e é declarado com a palavra-chave bool.
São empregados comumente em estruturas de decisão e laços de repetição, onde uma condição deve ser avaliada para decidir o que o programa fará na sequência.
Exemplo:
fn main() { let d: bool = true; println!("{}", d); }
Tipo de Caractere
O tipo padrão para armazenamento de caracteres em Rust é o tipo char. Este tipo, cujos dados são representados entre aspas simples, ocupa quatro bytes por dado e representa um valor escalar Unicode. Sendo assim, consegue representar caracteres ASCII, caracteres em idiomas orientais (Chinês, Japonês, Coreano, etc.), emojis e muitos outros.
Exemplo:
fn main() { let c: char = 'Q'; println!("{}", c); }
Note que o tipo char é empregado para o armazenamento de um caractere único. Senso assim, a declaração a seguir está incorreta, e irá gerar um erro ao compilarmos:
fn main() { let c: char = 'Morango'; println!("{}", c); }
Como declaramos um tipo para representar mais de um caractere então? Para isso necessitamos de um tipo para armazenamento de strings.
Strings em Rust
Uma string é uma cadeia de carateres, que empregamos para armazenar dados comuns como nomes, palavras, códigos, descrições, etc.
Em Rust, existe um tipo string, com suporte a UTF-8.
Para criarmos um dado do tipo string, representamos o valor entre aspas duplas, como no exemplo a seguir:
let nome = "Fábio dos Reis";
Neste exemplo, “Fábio dos Reis” é um literal de string e o tipo é &’static str. Um literal de string é uma fatia de string alocada de forma estática, o que significa que ela fica armazenada dentro do programa compilado, existindo enquanto o programa estiver em execução.
Em Rust, existe um outro tipo para armazenamento de Strings. Trata-se do tipo String, cujo tamanho pode crescer dinamicamente. É possível criar objetos do tipo String convertendo uma fatia de string com o método to_string().
Confuso? Não se preocupe. Teremos um tutorial especial dedicado às strings em Rust. Por enquanto, basta declarar os dados do tipo string envolvendo-os em aspas duplas ao declarar uma variável, como no exemplo a seguir:
fn main() { let canal = "Bóson Treinamentos em Tecnologia!"; println!("{}", canal); }
Na próxima lição vamos dar uma olhada em alguns tipos compostos em Rust.
Perguntas e Respostas comuns
O que é um Tipo de Dado em programação?
Tipo de dado é uma classificação que especifica qual tipo de valor uma variável pode armazenar, e que tipos de operações matemáticas, relacionais ou lógicas podem ser aplicadas a essa variável, sem causar erros.
Quais são os tipos escalares em Rust?
Os tipos escalares em Rust são o tipo inteiro, de ponto flutuante , booleano e de caracteres.
O que significa tipo com sinal e tipo sem sinal?
Tipo com sinal indica que o número pode ser negativo (com sinal –), e tipo sem sinal, que o número somente pode ser positivo.
Referências
- Site oficial da linguagem Rust: https://www.rust-lang.org/
- Documentação oficial do Rust: https://doc.rust-lang.org/
- Rust by Example: https://doc.rust-lang.org/stable/rust-by-example/
- Rust Programming Language Book: https://doc.rust-lang.org/book/
- The Rust Programming Language Blog: https://blog.rust-lang.org/
Escreva um comentário