In Rust wird strikte statische Typisierung verwendet: Die Typen aller Variablen und Funktionen sind zur Compile-Zeit bekannt und können zur Laufzeit nicht geändert werden. Das bedeutet, dass der Compiler die meisten Fehler, die mit der falschen Verwendung von Typen verbunden sind, vor der Ausführung des Programms erkennt.
Die statische Typisierung bietet:
Beispiel:
let x: i32 = 5; let y: f64 = 2.0; let z = x as f64 + y; // korrekt: x wird in f64 umgewandelt // let w = x + y; // Compilerfehler: unterschiedliche Typen
Wie kann man in Rust eine Funktion implementieren, die sowohl mit Zahlen als auch mit Strings funktioniert? Reicht die Verwendung des Typs dyn Any aus?
Antwort:
Die Verwendung von dyn Any ermöglicht das Downcasting von Typen, aber für generische Funktionen in Rust ist es besser, Generics und Traits mit Beschränkungen zu verwenden. Zum Beispiel:
use std::fmt::Display; fn print_value<T: Display>(val: T) { println!("{}", val); }
Geschichte
Geschichte
#[derive(Serialize)]) zu serialisieren, was den Release um einen Tag verzögerte.Geschichte
In einem der Fintech-Projekte dachten Programmierer, dass Rust Typen in arithmetischen Ausdrücken automatisch umwandelt, so wie es Python oder JavaScript tun. Infolgedessen gab es zur Compile-Zeit Hunderte von Fehlern, und es musste ein Teil des Codes überarbeitet werden, indem die Typumwandlungen explizit angegeben wurden.