Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03259.jsonl.gz/1069

Grundlagen
In diesem und den darauffolgenden Kapiteln streifen du und ich durch die generellen Funktionen von Rust. Das kann natürlich sehr ermüdend sein. Wenn du direkt etwas produktives tun möchtest, kannst du zum Einstieg auch Ratespiel in den späteren Kapiteln nutzen, um Rust kennenzulernen. Du solltest aber im Anschluss wieder zu diesem und den nachfolgenden Kapiteln zurückkehren, da es in Rust eine Menge Fallstricke gibt.
Variablen
Fast jedes nicht-triviale Rust-Programm verwendet Variablenbindungen.
Falls du noch nie etwas von Variablen gehört hast, will ich dieses kurz erklären. Variablen tragen Werte mit sich. So kann man unter einem Bezeichner zb. name einen Wert hinterlegen. Das heißt, die Variable name kann den Wert Oscar haben. Immer wenn ich diese Variable benutze im späteren Verlauf des Programms, wird der Computer nicht das Wort name lesen und nutzen, sondern den hinterlegten Wert. In diesem Beispiel Oscar.
Variablen haben zusätzlich den Vorteil, dass man diese Variablen verändern kann. Somit machen diese kleinen Helfer einen wichtigen Hauptbestandteil in der Programmierung aus.
Variablen bei Rust sehen so aus:
- fn main() {
- let x = 5;
- }
Anmerkung:
fn main() { in jedes Beispiel zu schreiben ist ein wenig mühsam, also werden wir es in Zukunft weglassen. Falls du diese Beispiele ausprobierst, stelle sicher, dass du deinen Code in einer main() Methode schreibst und nicht wie ich in diesem Buch weglässt. Ansonsten bekommst du einen Fehler.
In vielen Sprachen wird das eine Variable genannt, aber Rusts Variablenbindungen haben ein paar Tricks im Ärmel. Zum Beispiel ist die linke Seite der let Anweisung ein Muster und nicht einfach nur ein Variablenname. Das bedeutet, dass wir solche Sachen tun können:
let (x, y) = (1, 2);
Nach dem Ausführen dieser Anweisung ist x 1 und y wird 2 sein. Wir brauchen diese Features fürs Erste nicht, also behalten wir uns das hier erstmal im Hinterkopf während wir weiter machen.
Rust ist eine statisch typisierte Sprache, was bedeutet, dass wir unsere Typen im Voraus angeben müssen und diese zur Kompilierzeit überprüft werden. Aber warum kompiliert dann unser erstes Beispiel? Nun, Rust kann etwas namens Typinferenz. Wenn Rust den Typ alleine herausfinden kann, dann müssen wir den Typ nicht unbedingt angeben.
Wir können den Typ aber angeben, wenn wir wollen. Ein Typ kommt nach einem Doppelpunkt (:):