Bedingste Rust-Funktionskompilierung

RustRustBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab haben wir einen Codeausschnitt, der eine Funktion namens conditional_function() enthält, aber diese wird nur kompiliert und ausgeführt, wenn eine benutzerdefinierte Bedingung namens some_condition an rustc über das Flag --cfg übergeben wird.

Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie main.rs verwenden und es mit rustc main.rs &&./main kompilieren und ausführen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") subgraph Lab Skills rust/function_syntax -.-> lab-99343{{"Bedingste Rust-Funktionskompilierung"}} rust/expressions_statements -.-> lab-99343{{"Bedingste Rust-Funktionskompilierung"}} end

Anpassung

Einige Bedingungen wie target_os werden von rustc implizit bereitgestellt, aber benutzerdefinierte Bedingungen müssen an rustc über das Flag --cfg übergeben werden.

#[cfg(some_condition)]
fn conditional_function() {
    println!("Bedingung erfüllt!");
}

fn main() {
    conditional_function();
}

Versuchen Sie, dies auszuführen, um zu sehen, was passiert, wenn das benutzerdefinierte cfg-Flag fehlt.

Mit dem benutzerdefinierten cfg-Flag:

$ rustc --cfg some_condition custom.rs && ./custom
Bedingung erfüllt!

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Anpassungslab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.