Sujets Rust importants

Rust Modules and pub

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

  • Avancé
  • 3 min de lecture
  • 1 exemple exécutable
Ce que vous allez apprendre
  • 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.

Points clés

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

Exemple Rust exécutable

Rust
Exécuter le code →
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));
}
Obtenir un bouton Run pour cet exemple Résultat de l'exécution
12.57
180.0

S'entraîner

Ouvrez l'exemple dans le compilateur en ligne, modifiez une valeur ou ajoutez une ligne, et devinez la sortie avant de l'exécuter. Cassez ensuite le code exprès et lisez le message du compilateur.

Leçon terminée ?

Marquez-la comme apprise pour suivre votre progression.

Suivante : Threads →

S'entraîner avec un défi

Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.

Tous les défis