Learn Rust Coding · Lekcja

Funkcje i profile

Kompilacja warunkowa

Lekcja 4 z 413 kroki

Funkcje i profile to bezpłatna lekcja Learn Rust Coding na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn Rust Coding, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.

Czym są funkcje opcjonalne?

Funkcje opcjonalne pozwalają włączać lub wyłączać opcjonalne części pakietu podczas kompilacji. Dzięki nim pakiety są elastyczne: użytkownicy płacą tylko za to, czego używają.

Deklarowanie funkcji opcjonalnych

Funkcje opcjonalne definiuje się w tabeli [features]. Każda funkcja może włączać inne funkcje lub opcjonalne zależności.

[features]
default = ["json"]
json = []
fast_math = []

Kompilacja warunkowa

Kod można osłonić atrybutem cfg, aby był kompilowany tylko wtedy, gdy dana funkcja opcjonalna jest włączona.

#[cfg(feature = "json")]
fn export() {
    println!("Exporting as JSON");
}

fn main() {
    #[cfg(feature = "json")]
    export();
}

Włączanie funkcji opcjonalnych

Użytkownicy pakietu włączają funkcje opcjonalne w deklaracji zależności lub w wierszu poleceń.

[dependencies]
my_lib = { version = "1.0", features = ["fast_math"] }

Funkcje domyślne

Funkcja default jest automatycznie włączona. Można ją wyłączyć za pomocą default-features = false, aby uzyskać minimalną kompilację.

[dependencies]
my_lib = { version = "1.0", default-features = false }

Funkcje opcjonalne w interfejsie wiersza poleceń

Funkcje opcjonalne można także włączać i wyłączać dla poszczególnych poleceń bez edytowania manifestu.

cargo build --features fast_math
cargo run --no-default-features
cargo test --all-features

Czym są profile?

Profile określają ustawienia kompilatora, takie jak poziom optymalizacji i informacje debugowania. Dwa wbudowane profile to dev (debugowanie) i release.

Profil dev

Profilu dev używa polecenie cargo build. Stawia on na szybkie kompilowanie i łatwe debugowanie, a nie na szybkość działania programu.

[profile.dev]
opt-level = 0
debug = true

Profil release

Profil release (używany wraz z --release) włącza optymalizacje, aby uzyskać szybkie pliki binarne.

[profile.release]
opt-level = 3
lto = true
strip = true

Dostosowywanie profilu

Każdy profil można precyzyjnie dostosować. Można na przykład włączyć niewielką optymalizację w kompilacjach dev, aby przyspieszyć działanie programu, zachowując szybkie kompilowanie zależności.

[profile.dev]
opt-level = 1

[profile.dev.package."*"]
opt-level = 3

Opcjonalne zależności jako funkcje opcjonalne

Opcjonalna zależność domyślnie tworzy funkcję opcjonalną o tej samej nazwie. Włączenie tej funkcji dołącza zależność, dzięki czemu użytkownicy korzystają z cięższych pakietów tylko wtedy, gdy są potrzebne.

[dependencies]
serde = { version = "1.0", optional = true }

[features]
serialize = ["dep:serde"]

Szybkie sprawdzenie

Jaki atrybut kompiluje blok kodu tylko wtedy, gdy funkcja opcjonalna jest włączona?

Podsumowanie

Dowiedziałeś się o narzędziach kompilacji warunkowej:

  • [features] deklaruje opcjonalne funkcje
  • #[cfg(feature = ...)] warunkowo włącza kod na podstawie funkcji
  • default-features = false pozwala uzyskać minimalną kompilację
  • Profile, takie jak dev i release, sterują optymalizacją oraz ustawieniami debugowania
Bezpłatny start

Ucz się Rust dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
39
Lekcje
144

Często zadawane pytania

Czy lekcja „Funkcje i profile” jest bezpłatna?

Tak — pełny tekst „Funkcje i profile” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn Rust Coding, przejdź na CoddyKit PRO. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.

Co nauczysz się w „Funkcje i profile”?

Kompilacja warunkowa Ćwiczysz Learn Rust Coding z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn Rust Coding?

Nie wymagamy żadnego doświadczenia. Learn Rust Coding w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Funkcje i profile”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn Rust Coding?

Tak. Każda lekcja Learn Rust Coding zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy Cargo
  2. Cargo.toml
  3. Obszary robocze
  4. Funkcje i profile
← Powrót do Learn Rust Coding