Typinferenz
Rust wird sich ansehen, wie die Variable benutzt wird, um den Typ zu bestimmen:
Speaker Notes
This slide should take about 3 minutes.
Diese Folie zeigt, wie der Rust-Compiler Typen basierend auf Einschränkungen ableitet, die durch Variablendeklarationen und Verwendungen gegeben sind.
Es ist sehr wichtig zu betonen, dass auf diese Weise deklarierte Variablen nicht von einem dynamischem “beliebigen Typ” sind, der beliebige Daten enthalten kann. Der durch eine solche Deklaration erzeugte Maschinencode ist identisch mit der expliziten Deklaration eines Typs. Der Compiler erledigt lediglich die Arbeit für uns und hilft uns prägnanteren Code zu schreiben.
When nothing constrains the type of an integer literal, Rust defaults to i32
. This sometimes appears as {integer}
in error messages. Similarly, floating-point literals default to f64
.
fn main() {
let x = 3.14;
let y = 20;
assert_eq!(x, y);
// ERROR: no implementation for `{float} == {integer}`
}