Avatar ·

¿Cómo pasar una función como parámetro en Rust?

¡Hola a todos! Acabo de empezar a aprender Rust y me encontré con un problema. En otros lenguajes, como Python o JavaScript, puedo pasar fácilmente una función como argumento a otra función. Por ejemplo: ```python def apply(func, x): return func(x) def double(x): return x * 2 result = apply(double, 5) ``` En Rust intenté hacer algo similar, pero el compilador arroja errores. Aquí está mi código: ```rust fn apply(func: ???, x: i32) -> i32 { func(x) } fn double(x: i32) -> i32 { x * 2 } fn main() { let result = apply(double, 5); println!("{}", result); } ``` No entiendo qué tipo debo especificar para el parámetro `func`. Probé escribir `fn(i32) -> i32`, pero no funcionó. En la documentación se mencionan los traits `Fn`, `FnMut` y `FnOnce`, pero estoy confundido sobre cuál usar y cómo declarar correctamente estas funciones. Por favor, indíquenme cómo pasar una función como parámetro en Rust. Preferiblemente con ejemplos claros. <<>>

Uso de los traits F