Podstawy modułów
Część sekcji Programowanie obiektowe ścieżki Rust w Coddy. Lekcja 8 z 61.
W miarę rozrastania się programów w Rust trzymanie wszystkiego w jednym pliku staje się uciążliwe. System modułów Rust pozwala organizować kod przez przenoszenie struktur i ich implementacji do osobnych plików.
Aby utworzyć moduł w osobnym pliku, wystarczy utworzyć nowy plik o wybranej nazwie modułu. Na przykład, aby utworzyć moduł player, utwórz plik o nazwie player.rs:
// player.rs
struct Player {
name: String,
score: u32,
}
impl Player {
fn new(name: String) -> Player {
Player { name, score: 0 }
}
}
Aby użyć tego modułu w pliku głównym, deklarujesz go za pomocą słowa kluczowego mod. Dzięki temu Rust szuka pliku o tej nazwie:
// main.rs
mod player;
fn main() {
// Możemy teraz uzyskać dostęp do elementów modułu player
}
Deklaracja mod player; informuje Rust, aby znalazł i dołączył zawartość pliku player.rs. Możesz myśleć o tym jak o połączeniu kodu z tego pliku z Twoim programem. Nazwa modułu musi dokładnie odpowiadać nazwie pliku (bez rozszerzenia .rs).
Taki podział pozwala trzymać powiązany kod razem. Definicja struktury i wszystkie jej metody znajdują się w jednym dedykowanym pliku, a main.rs pozostaje skupiony na punkcie wejścia programu. W następnej lekcji dowiesz się, jak uzyskać dostęp do elementów umieszczonych w modułach.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Metody i zachowanie
Wprowadzenie do bloków implementacjiParametr selfMetody modyfikująceFunkcje powiązaneWiele bloków implementacjiŁańcuchowe wywoływanie metodPowtórzenie — działania na prostokącie4Projekt: Wirtualne zwierzątko
Definiowanie zwierzątkaKarmienie zwierzątka7Standardowe cechy
Cecha DebugCecha DisplayClone i CopyCechy równościPowtórka – punkt do wydrukowania10Projekt: System dokumentów
Trait DrawKomponent tekstowy2Hermetyzacja i moduły
Podstawy modułówSłowo kluczowe publicPola prywatneGetterySetteryPodsumowanie — bezpieczna skrytka5Typy generyczne
Struktury generyczneMetody generyczneWiele typów generycznychFunkcje generycznePodsumowanie – punkt współrzędnych8Cechy jako ograniczenia
Składnia ograniczeń cechWiele ograniczeńKlauzula whereZwracanie typów z użyciem cechPodsumowanie — generyczna drukarka11Wzorce projektowe w Rust
Wzorzec NewtypeKompozycjaTrait DropFrom i IntoPodsumowanie — atrapowy inteligentny wskaźnik3Zaawansowane typy wyliczeniowe
Typy wyliczeniowe z danymiMetody typów wyliczeniowychDopasowywanie wariantów danychTyp wyliczeniowy Option — powtórzeniePodsumowanie — typ wyliczeniowy Shape6Definiowanie cech
Czym jest cecha?Implementowanie cechImplementacje domyślneNadpisywanie wartości domyślnychCechy z parametramiPowtórzenie — odtwarzacz multimedialnyPoćwicz samodzielnie: Kompilator Rust online