Rust utilise un typage statique strict : les types de toutes les variables et fonctions sont connus au moment de la compilation et ne peuvent pas changer à l'exécution. Cela signifie que le compilateur détectera à l'avance la plupart des erreurs liées à une mauvaise utilisation des types, avant l'exécution du programme.
Le typage statique garantit :
Exemple :
let x: i32 = 5; let y: f64 = 2.0; let z = x as f64 + y; // correct : x est converti en f64 // let w = x + y; // erreur de compilation : types différents
Comment en Rust réaliser une fonction qui fonctionne à la fois avec des nombres et des chaînes de caractères ? Suffit-il d'utiliser le type dyn Any ?
Réponse :
L'utilisation de dyn Any permet d'effectuer un downcast des types, mais pour des fonctions génériques, il est préférable d'utiliser des génériques et des traits avec des contraintes. Par exemple :
use std::fmt::Display; fn print_value<T: Display>(val: T) { println!("{}", val); }
Histoire
Histoire
#[derive(Serialize)]), ce qui a retardé la sortie d'un jour.Histoire
Dans un projet fintech, les programmeurs ont pensé que Rust convertissait automatiquement les types dans les expressions arithmétiques, comme le font Python ou JavaScript. En conséquence, des centaines d'erreurs sont apparues au moment de la compilation, et il a fallu réécrire une partie du code en spécifiant clairement les conversions de types.