Categoria: Rust

Rust é uma linguagem de programação moderna construída sobre três pilares: segurança de memória, desempenho e concorrência. Foi projetada para ocupar o espaço de C e C++ em sistemas onde a eficiência é crítica, eliminando ainda em tempo de compilação os erros clássicos de gerenciamento de memória — e sem precisar de coletor de lixo. O caminho oficial para começar é o livro The Rust Programming Language.

Rust

Traits comuns da std

Esta aula explora os traits mais comuns da biblioteca padrão do Rust: Debug, Clone, Copy, PartialEq, Eq, Ord, Display e o atributo derive. Você aprenderá como implementá-los manualmente ou via derive, e como eles habilitam comportamentos essenciais como impressão, comparação e clonagem de tipos.

Lido
Rust

Trait bounds e where

Esta aula aborda como restringir tipos genéricos em Rust usando trait bounds, incluindo a sintaxe 'where' para maior clareza, o uso de 'impl Trait' em parâmetros e retornos, e a combinação de múltiplos bounds. O conteúdo inclui exemplos práticos e boas práticas para escrever código genérico mais legível e seguro.

Lido
Rust

Closures

Nesta aula, você aprenderá sobre closures em Rust: sintaxe, captura de ambiente, as traits Fn, FnMut e FnOnce, e a palavra-chave move. Com exemplos práticos e exercícios, dominará como criar e usar closures de forma eficiente.

Lido
Rust

Trait objects e dyn

Aula sobre trait objects em Rust, abordando despacho dinâmico vs estático, uso de `dyn Trait`, alocação com `Box<dyn Trait>` e custos associados. Explica como traits podem ser usados para polimorfismo em tempo de execução com exemplos práticos.

Lido
Rust

Sobrecarga de operadores

Nesta aula, exploramos a sobrecarga de operadores em Rust, que permite definir comportamentos personalizados para operadores como +, *, [] em tipos definidos pelo usuário. Aprendemos a implementar traits como Add, Mul e Index, seguindo as regras de consistência e imutabilidade da linguagem, com exemplos práticos de um tipo NúmeroComplexo e uma Matriz.

Lido
Rust

Iteradores avançado

Nesta aula, exploramos iteradores avançados em Rust, incluindo métodos como collect, fold, zip e enumerate, além de aprender a criar iteradores personalizados. Também discutimos aspectos de performance e boas práticas para usar iteradores de forma eficiente.

Lido
Rust

Box<T>

Nesta aula, exploramos o smart pointer Box<T> em Rust, que permite alocar dados na heap. Abordamos sua utilidade para tipos recursivos, o padrão de implementação Deref para acesso transparente ao valor interno e as situações ideais para seu uso.

Lido
Rust

RefCell e mutabilidade interior

Esta aula aborda o padrão de mutabilidade interior em Rust, focando no tipo RefCell<T>. Explica como borrow() e borrow_mut() permitem violar as regras de empréstimo em tempo de compilação, delegando a verificação para o runtime, e como combiná-lo com Rc<T> para criar dados mutáveis compartilhados. Também discute os riscos de pânico e vazamento de referências.

Lido
Rust

Rc<T>: contagem de referências

Esta aula explora Rc<T>, um smart pointer de Rust que permite compartilhamento de ownership via contagem de referências. Aborda como Rc::clone funciona, suas limitações (apenas thread-local, sem mutabilidade compartilhada) e casos de uso típicos como grafos e árvores.

Lido
Rust

Iteradores

Esta aula cobre o trait Iterator em Rust, o método next, adaptadores como map e filter, e o conceito de lazy evaluation. Você aprenderá a criar e combinar iteradores de forma eficiente e idiomática.

Lido
Rust

Deref e Drop

Esta aula aborda os traits Deref e Drop em Rust, explicando como o primeiro possibilita a coerção de desreferência e o segundo permite a execução de código na destruição de um valor. Também são discutidas a ordem de execução dos drops e a função std::mem::drop, com exemplos práticos e exercícios.

Lido
Rust

Threads

Esta aula aborda a criação e gerenciamento de threads em Rust, incluindo spawn, join, o uso de move em closures, compartilhamento de dados com Arc<Mutex<T>> e os riscos de concorrência como deadlocks e data races. O objetivo é capacitar o aluno a escrever programas concorrentes seguros e eficientes.

Lido