¿Por qué existen tipos anónimos únicos en Rust y cómo trabajar con ellos?
¡Hola a todos! Empecé a estudiar Rust recientemente y tengo una falta de comprensión con el concepto de tipos anónimos. Leí que en Rust cada literal de closure tiene su propio tipo único e innombrable. Por ejemplo, este código:
```rust
let add_one = |x: i32| x + 1;
let double = |x: i32| x * 2;
```
Entiendo que `add_one` y `double` son closures diferentes con tipos diferentes. Pero, ¿por qué se hizo esto? En C++ u otros lenguajes puedo simplemente declarar un puntero a función o usar `std::function`. ¿Por qué Rust optó por crear tipos anónimos únicos? Me parece que esto complica la escritura de código genérico, especialmente cuando quiero pasar un closure a una función o almacenarlo en una estructura. Por ejemplo, no puedo simplemente escribir:
```rust
fn apply(f: ???, x: i32) -> i32 {
f(x)
}
```
Tengo que usar genéricos o `Box`. ¿Es esto normal? ¿O me estoy perdiendo algo? ¿Cómo diseñar código teniendo en cuenta esta característica? Agradecería una explicación con ejemplos de por qué tal
No answers yet.
Inicia sesión para dejar una respuesta