Quando usar tipo associado e quando usar parâmetro genérico em Rust?
Olá a todos! Comecei a estudar Rust e me deparei com uma dificuldade: não consigo entender em quais casos devo usar tipos associados (associated types) e em quais devo usar parâmetros genéricos comuns (generics).
Por exemplo, estou escrevendo um trait para algum iterador ou coleção. Se eu quiser que a estrutura tenha um tipo de elemento, posso fazer assim:
```rust
trait MyIterator {
fn next(&mut self) -> Option;
}
```
Ou assim:
```rust
trait MyIterator {
type Item;
fn next(&mut self) -> Option;
}
```
Ambas as opções parecem funcionar, mas ouvi dizer que há diferença em como elas são aplicadas na prática. Não está muito claro para mim: quando devo escolher uma forma e quando devo escolher a outra?
Exemplo concreto: estou escrevendo um trait para figuras geométricas que têm área. Cada figura pode ter seu próprio tipo para representar coordenadas (por exemplo, `f32`, `f64` ou até números inteiros). Se eu fizer `trait Shape`, terei que especificar o tipo em todos os lugares. Mas se eu fizer `tra
No answers yet.
Faça login para deixar uma resposta
Blogs
Programação Assíncrona em C++: Guia Completo com Exemplos
Injeção de Dependência em Rust: Guia Completo para Desenvolvedores
Erro @Override no Eclipse: como vencer "Must Override a Superclass Method"
Rust no Windows: resolva o erro linker 'cc' not found em 5 minutos