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

Métodos e blocos impl

Esta aula explora como definir métodos em Rust usando blocos `impl`, diferenciando `self`, `&self` e `&mut self`, além de métodos associados e construtores como `new`. Aprenda a organizar comportamento de tipos de forma idiomática e segura.

✓ Lido
Rust

O tipo Option

Nesta aula, exploramos o tipo Option do Rust, que substitui o conceito de null de forma segura. Aprendemos a usar Some e None, métodos como unwrap, map e and_then, e boas práticas para evitar erros em tempo de execução.

✓ Lido
Rust

if let e while let

Esta aula cobre as construções if let e while let em Rust, que são açúcares sintáticos para match em casos específicos. Aprenda quando e como usá-las para escrever código mais conciso e legível, combinando-as com else e vendo exemplos práticos.

✓ Lido
Rust

O tipo Result

Esta aula aborda o tipo Result do Rust, que é a principal forma de lidar com operações que podem falhar. Serão explicados os variantes Ok e Err, a propagação de erros com o operador ?, e as diferenças entre expect e unwrap, além de padrões idiomáticos para tratamento de erros.

✓ Lido
Rust

Vetores (Vec)

Esta aula aborda o tipo Vec em Rust, desde a criação e adição de elementos até indexação segura, iteração e gerenciamento de capacidade. Aprenda a usar vetores de forma eficiente e idiomática.

✓ Lido
Rust

Outras coleções

Esta aula apresenta as coleções VecDeque, BTreeMap e HashSet da biblioteca padrão do Rust, explicando suas características, quando utilizá-las e fornecendo exemplos práticos de código.

✓ Lido
Rust

HashMap

Esta aula ensina como usar HashMap em Rust: inserção, leitura, a poderosa entry API, regras de ownership e iteração. Inclui exemplos práticos e exercícios com respostas.

✓ Lido
Rust

Erros customizados

Nesta aula, você aprenderá a criar seus próprios tipos de erro em Rust, implementar a trait Error, e conhecerá as bibliotecas thiserror e anyhow para simplificar o tratamento de erros. O conteúdo aborda desde a definição de erros customizados até boas práticas para aplicações reais.

✓ Lido
Rust

Genéricos

Esta aula aborda o sistema de genéricos em Rust, incluindo funções, structs e enums genéricos, o processo de monomorfização e o uso de limites (trait bounds) para restringir tipos. O conteúdo é progressivo, com exemplos práticos e exercícios para fixação.

✓ Lido
Rust

Tratamento de erros idiomático

Nesta aula, você aprenderá a tratar erros em Rust de forma idiomática, comparando panic! e Result, dominando o operador ?, convertendo erros entre tipos e aplicando boas práticas para código robusto e legível.

✓ Lido
Rust

Trait bounds e where

Esta aula cobre como restringir tipos genéricos em Rust usando trait bounds, a sintaxe `where` para clareza, o uso de `impl Trait` em argumentos e retornos, e como combinar múltiplos bounds. O conteúdo inclui exemplos práticos, boas práticas e exercícios com respostas.

✓ Lido
Rust

Traits comuns da std

Nesta aula, exploramos os traits mais comuns da biblioteca padrão do Rust: Debug, Clone, Copy, PartialEq, Eq, Ord e Display. Aprendemos como implementá-los manualmente e como usar a macro `derive` para gerar implementações automaticamente, além de boas práticas para cada trait.

✓ Lido
Rust

Trait objects e dyn

Esta aula explora trait objects em Rust, contrastando despacho dinâmico e estático, e demonstrando o uso de `dyn Trait` e `Box<dyn Trait>` para polimorfismo em tempo de execução. Discutimos os custos associados, incluindo overhead de alocação e desempenho, com exemplos práticos.

✓ Lido
Rust

Sobrecarga de operadores

Aula sobre sobrecarga de operadores em Rust, abordando os principais traits da biblioteca padrão (Add, Mul, Index, etc.), como implementá-los e exemplos práticos para criar tipos que se comportam como nativos.

✓ Lido
Rust

Box<T>

Nesta aula, exploramos o smart pointer Box<T> em Rust, que permite alocar dados na heap. Aprendemos como utilizá-lo para tipos recursivos como listas encadeadas, quando empregá-lo e como a trait Deref possibilita a desreferenciação automática.

✓ Lido