Anfängerprogrammierung in Rust: Hallo Welt

Beginner

This tutorial is from open-source community. Access the source code

Einführung

Willkommen bei Hello, World. Dieser Lab ist ein Teil des Rust Buchs. Du kannst deine Rust-Fähigkeiten in LabEx üben.

In diesem Lab wirst du dein erstes Rust-Programm schreiben, das den Text "Hello, world!" auf dem Bildschirm ausgeben wird.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 88% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Hello, World

Jetzt, nachdem du Rust installiert hast, ist es an der Zeit, dein erstes Rust-Programm zu schreiben. Es ist traditionell, wenn man eine neue Sprache lernt, ein kleines Programm zu schreiben, das den Text Hello, world! auf dem Bildschirm ausgibt, also werden wir das hier auch tun!

Hinweis: Dieses Buch setzt eine grundlegende Vertrautheit mit der Befehlszeile voraus. Rust stellt keine speziellen Anforderungen an deine Editoren- oder Werkzeuge oder an die Speicherorte deines Codes, also kannst du gerne eine integrierte Entwicklungsumgebung (IDE) statt der Befehlszeile verwenden. Viele IDEs unterstützen inzwischen Rust in gewissem Maße; prüfe die Dokumentation der IDE für Details. Das Rust-Team hat sich auf die Ermöglichung einer hervorragenden IDE-Unterstützung über rust-analyzer konzentriert. Siehe Anhang D für weitere Details.

Erstellen eines Projektverzeichnisses

Du wirst beginnen, ein Verzeichnis zu erstellen, um deinen Rust-Code zu speichern. Für Rust spielt es keine Rolle, wo dein Code gespeichert ist, aber für die Übungen und Projekte in diesem Buch empfehlen wir, ein project-Verzeichnis im Home-Verzeichnis zu erstellen und alle deine Projekte dort zu speichern.

Öffne ein Terminal und gebe die folgenden Befehle ein, um ein project-Verzeichnis und ein Verzeichnis für das "Hello, world!"-Projekt innerhalb des project-Verzeichnisses zu erstellen.

Für Linux, macOS und PowerShell unter Windows gibst du dies ein:

cd ~/project
mkdir hello_world
cd hello_world

Schreiben und Ausführen eines Rust-Programms

Als nächstes erstelle eine neue Quelldatei und nenne sie main.rs. Rust-Dateien enden immer mit der Erweiterung .rs. Wenn du in deinem Dateinamen mehr als ein Wort verwendest, ist die Konvention, sie mit einem Unterstrich zu trennen. Beispielsweise verwenden Sie hello_world.rs anstelle von helloworld.rs.

Öffne nun die gerade erstellte main.rs-Datei und gib den Code in Listing 1-1 ein.

Dateiname: main.rs

fn main() {
    println!("Hello, world!");
}

Listing 1-1: Ein Programm, das Hello, world! ausgibt

Speichere die Datei und kehre zum Terminalfenster im Verzeichnis ~/project/hello_world zurück. Auf Linux oder macOS gib die folgenden Befehle ein, um die Datei zu kompilieren und auszuführen:

$ rustc main.rs
$./main
Hello, world!

Unabhängig von deinem Betriebssystem sollte die Zeichenfolge Hello, world! auf dem Terminal ausgegeben werden. Wenn du diese Ausgabe nicht siehst, wende dich an "Problembehandlung", um Hilfe zu erhalten.

Wenn Hello, world! tatsächlich ausgegeben wurde, herzlichen Glückwunsch! Du hast offiziell ein Rust-Programm geschrieben. Damit bist du ein Rust-Programmierer geworden - herzlich willkommen!

Aufbau eines Rust-Programms

Lassen Sie uns dieses "Hello, world!"-Programm im Detail überprüfen. Hier ist der erste Teil des Puzzles:

fn main() {

}

Diese Zeilen definieren eine Funktion namens main. Die main-Funktion ist speziell: Sie ist immer der erste Code, der in jedem ausführbaren Rust-Programm ausgeführt wird. Hier deklariert die erste Zeile eine Funktion namens main, die keine Parameter hat und nichts zurückgibt. Wenn es Parameter gäbe, würden sie innerhalb der Klammern () stehen.

Der Funktionskörper ist in {} eingeschlossen. Rust erfordert geschweifte Klammern um alle Funktionskörper. Es ist guter Stil, die öffnende geschweifte Klammer auf derselben Zeile wie die Funktionsdeklaration zu platzieren, mit einem Leerzeichen dazwischen.

Hinweis: Wenn Sie einen standardisierten Stil in Rust-Projekten beibehalten möchten, können Sie ein automatisiertes Formatierungstool namens rustfmt verwenden, um Ihren Code in einem bestimmten Stil zu formatieren (mehr über rustfmt in Anhang D). Das Rust-Team hat dieses Tool wie rustc mit der standardmäßigen Rust-Verteilung mitgeliefert, so dass es bereits auf Ihrem Computer installiert sein sollte!

Der Körper der main-Funktion enthält folgenden Code:

    println!("Hello, world!");

Diese Zeile erledigt alle Arbeiten in diesem kleinen Programm: Sie druckt Text auf dem Bildschirm. Es gibt hier vier wichtige Details zu beachten.

Zunächst ist der Rust-Stil, mit vier Leerzeichen einzurücken, nicht mit einem Tabulator.

Zweitens ruft println! eine Rust-Makro auf. Wenn es stattdessen eine Funktion aufgerufen hätte, würde es als println (ohne das !) eingegeben werden. Wir werden Rust-Makros im Kapitel 19 im Detail diskutieren. Für jetzt müssen Sie nur wissen, dass das Verwenden eines ! bedeutet, dass Sie ein Makro statt einer normalen Funktion aufrufen und dass Makros nicht immer den gleichen Regeln wie Funktionen folgen.

Drittens sehen Sie die Zeichenfolge "Hello, world!". Wir übergeben diese Zeichenfolge als Argument an println!, und die Zeichenfolge wird auf dem Bildschirm gedruckt.

Viertens beenden wir die Zeile mit einem Semikolon (;), was angibt, dass dieser Ausdruck beendet ist und der nächste beginnen kann. Die meisten Zeilen von Rust-Code enden mit einem Semikolon.

Kompilieren und Ausführen sind getrennte Schritte

Du hast gerade ein neu erstelltes Programm ausgeführt, also lassen wir uns jeden Schritt im Prozess untersuchen.

Bevor du ein Rust-Programm ausführst, musst du es mit dem Rust-Compiler kompilieren, indem du den Befehl rustc eingibst und ihm den Namen deiner Quelldatei angibst, wie folgt:

rustc main.rs

Wenn du einen Hintergrund in C oder C++ hast, wirst du bemerken, dass dies ähnlich zu gcc oder clang ist. Nach erfolgreicher Kompilierung gibt Rust eine binäre Ausführdatei aus.

Auf Linux, macOS und PowerShell unter Windows kannst du die Ausführdatei sehen, indem du im Terminal den Befehl ls eingibst:

$ ls
main main.rs

Von hier aus führst du die main-Datei aus, wie folgt:

./main

Wenn deine main.rs dein "Hello, world!"-Programm ist, druckt diese Zeile Hello, world! auf dein Terminal.

Wenn du mit einer dynamischen Sprache wie Ruby, Python oder JavaScript vertrauter bist, bist du vielleicht nicht gewohnt, ein Programm separat zu kompilieren und auszuführen. Rust ist eine ahead-of-time kompilierte Sprache, was bedeutet, dass du ein Programm kompilieren und die Ausführdatei an jemand anderen geben kannst, und dieser kann sie auch ausführen, auch wenn er nicht einmal Rust installiert hat. Wenn du jemandem eine .rb-, .py- oder .js-Datei gibst, muss er eine Ruby-, Python- oder JavaScript-Implementierung installiert haben (jeweils). Aber in diesen Sprachen brauchst du nur einen Befehl, um dein Programm zu kompilieren und auszuführen. Alles ist ein Kompromiss in der Sprachendesign.

Mit rustc zu kompilieren ist für einfache Programme ausreichend, aber wenn dein Projekt wächst, wirst du alle Optionen verwalten und es einfacher machen, deinen Code zu teilen wollen. Als nächstes werden wir dir das Cargo-Tool vorstellen, das dir helfen wird, echte Rust-Programme zu schreiben.

Zusammenfassung

Herzlichen Glückwunsch! Du hast das Hello, World-Labor abgeschlossen. Du kannst in LabEx weitere Labs ausprobieren, um deine Fähigkeiten zu verbessern.