MINT üben

Rust und Go: sicher, schnell

Dreißig Übungen zu Rust und Go — von Ownership und Borrow Checker über Garbage Collector bis zu Goroutinen und Kanälen.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Goroutinen und ein Kanal
AFB II

Ordne jede Station des Schaubilds richtig ein: Hefte an jeden Marker das Etikett, das beschreibt, was dort geschieht. Ein Etikett bleibt übrig.

Wähle oben ein Etikett und klicke dann auf den passenden Marker im Bild oder in der Liste darunter. Mit der Tastatur: Tab zum Etikett, dann die Ziffer des Markers (1–3) drücken. Ein Klick auf einen beschrifteten Marker löst sein Etikett wieder. Nicht jedes Etikett wird gebraucht.
    Zwei Goroutinen verständigen sich über einen Kanal: Die linke sendet mit ch <- 5, die rechte empfängt mit x := <-ch. Der Besitzer eines Werts nach einem Move gehört zu Rust, nicht zu diesem Schaubild.
    Ansatz: Der Pfeil zeigt, in welche Richtung die Werte fließen.
    Weiter: Am Anfang des Pfeils wird gesendet, an seinem Ende empfangen.
    A2
    Mix: Wer räumt den Speicher auf?
    AFB IIMix

    Du kennst C, Java und Python bereits. Erkläre, wie jede der fünf Sprachen Speicher verwaltet und ausgeführt wird, indem du jede Sprache mit ihrer Beschreibung verbindest.

    Ansatz: Beginne mit den Sprachen, die du aus früheren Unterkapiteln sicher kennst.
    Weiter: Zwei Beschreibungen nennen einen Garbage Collector, eine nennt die Prüfung beim Kompilieren.
    A3
    Wer besitzt den String?
    AFB I

    Zeichne ins Raster ein, wer den String nach jeder Zeile besitzt: Die Zeilen sind die Variablen a, b und c, die Spalten die Programmzeilen 1 bis 4.

    Rust · Ausschnitt
    let a = String::from("Hi");
    let b = a;
    let c = b;
    println!("{}", c);
    Wähle besitzt und klicke Felder an: Ein Feld bedeutet „diese Variable besitzt den String nach dieser Zeile“. Ein zweiter Klick leert ein Feld.
      Nach Zeile 1 besitzt a den String. Zeile 2 übergibt den Besitz an b, Zeile 3 an c. Bei der Ausgabe in Zeile 4 bleibt c der Besitzer. Zu jedem Zeitpunkt gibt es genau einen Besitzer.
      Ansatz: Fange bei Zeile 1 an und frage dich nach jeder Zeile: Wer besitzt den String jetzt?
      Weiter: Ein let b = a; übergibt den Besitz — danach besitzt a nichts mehr.