🎯 Tipos de Dados em Rust

Em poucas palavras

Rust é uma linguagem estaticamente tipada, o que significa que o compilador deve conhecer o tipo de todas as variáveis em tempo de compilação. Os tipos são divididos em duas categorias principais: Escalares (um único valor) e Compostos (múltiplos valores agrupados).


📝 Notas e Desenvolvimento

1. Tipos Escalares

Representam um único valor atômico.

A. Inteiros

Números sem casas decimais. O padrão é i32.

ComprimentoCom SinalSem Sinal
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
arch (arquitetura)isizeusize

Estouro de Inteiro (Overflow)

  • Em Debug: O programa causa um panic.
  • Em Release: Ocorre o wrapping (ex: em u8, 256 vira 0).

B. Ponto Flutuante

Números com casas decimais. O padrão é f64.

  • f32: Precisão simples.
  • f64: Precisão dupla (mais comum e performático em CPUs modernas).

C. Booleano e Caractere

  • bool: Possui 1 byte de tamanho. Valores: true ou false.
  • char: Possui 4 bytes. Representa um valor escalar Unicode (suporta emojis e caracteres especiais).

2. Tipos Compostos

Agrupam múltiplos valores em um único tipo.

A. Tuplas

Tamanho fixo, mas podem conter tipos diferentes.

  • Acesso: Via desestruturação ou índice (ex: tup.0).
  • Tipo Unitário: Uma tupla vazia () representa a ausência de valor.
let tup: (i32, f64, u8) = (500, 6.4, 1);
let (x, y, z) = tup; // Desestruturação

B. Arrays (Matrizes)

Tamanho fixo e todos os elementos devem ser do mesmo tipo.

  • Alocação: São alocados na Stack (pilha).
  • Segurança: Rust verifica os limites em tempo de execução para evitar acessos inválidos.
let a: [i32; 5] = [1, 2, 3, 4, 5];
let primeiro = a[0];

3. Exemplos Práticos

fn main() {
    // Literais Numéricos
    let decimal = 98_222;
    let hex = 0xff;
    let byte = b'A'; // u8 apenas
 
    // Strings (Fatias vs Mutáveis)
    let slice: &str = "Estático"; 
    let mut dinamica: String = String::from("Dinâmico");
 
    // Array com valor repetido
    let repetido = [3; 5]; // [3, 3, 3, 3, 3]
}

🔗 Conexões e Contexto


📚 Referências e Fontes

📂 Outros Conteúdos Preservados

🔗 Conceitos Relacionados