Funciones genéricas
Rust admite el uso de genéricos, lo que permite abstraer los algoritmos o las estructuras de datos (como el ordenamiento o un árbol binario) sobre los tipos utilizados o almacenados.
Speaker Notes
This slide should take about 5 minutes.
-
Rust infiere un tipo para T en función de los tipos de los argumentos y del valor devuelto.
-
Es similar a las plantillas de C++, pero Rust compila de forma parcial la función genérica de forma inmediata, por lo que debe ser válida para todos los tipos que coincidan con las restricciones. Por ejemplo, prueba a modificar
pick
para que devuelvaeven + odd
sin == 0
. Aunque solo se use la instanciaciónpick
con números enteros, Rust seguirá considerando que no es válida. En cambio, C++ lo permitiría. -
Código genérico es convertido en código no genérico basada en los sitios de ejecución .Se trata de una abstracción sin coste: se obtiene exactamente el mismo resultado que si se hubiesen programado de forma manual las estructuras de datos sin la abstracción.