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

Sobre Fábio dos Reis (1197 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*