Tópicos importantes de Rust

Rust Modules and pub

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

  • Avançado
  • 3 min de leitura
  • 1 exemplo executável
O que você vai aprender
  • 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.

Pontos-chave

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

Exemplo executável de Rust

Rust
Executar código →
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));
}
Gerar um botão Run para este exemplo Resultado da execução
12.57
180.0

Pratique

Abra o exemplo no compilador online, mude um valor ou adicione uma linha e tente prever a saída antes de executar. Depois quebre o código de propósito e leia a mensagem do compilador.

Terminou esta lição?

Marque como aprendida para acompanhar seu progresso.

Próxima: Threads →

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios