Wichtige Rust-Themen

Rust Modules and pub

Organize code into modules and decide what the rest of the program may use.

  • Profi
  • 3 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • mod and pub
  • Paths with ::
  • use and super
mod geometry
  • geometry
    • pub circle_areapublic
    • squareprivate
    • pub mod convertto_degrees

Private unless marked pub

A module groups related functions, types and constants under a name. Everything in a module is private unless it is marked pub, so a module can hide its details.

circle_area is public, but square is private and can only be called inside geometry. Paths use ::, and super refers to the parent module. use brings a name into scope so to_degrees can be called without its full path.

Das Wichtigste

  1. Everything in a module is private by default.
  2. pub makes an item usable from outside.
  3. use brings a name into scope.

Ausführbares Rust-Beispiel

Rust
Code ausführen →
main.rs
mod geometry {
    pub const PI: f64 = 3.14159;

    pub fn circle_area(radius: f64) -> f64 {
        PI * square(radius)
    }

    fn square(value: f64) -> f64 {
        value * value
    }

    pub mod convert {
        pub fn to_degrees(radians: f64) -> f64 {
            radians * 180.0 / super::PI
        }
    }
}

use geometry::convert::to_degrees;

fn main() {
    println!("{:.2}", geometry::circle_area(2.0));
    println!("{:.1}", to_degrees(geometry::PI));
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
12.57
180.0

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Weiter: Threads →

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges