Rust Enum-Verwendungsbeispiele

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 ein C-ähnliches Beispiel in Rust, das zeigt, wie man enum wie C-ähnliche Enums verwendet, einschließlich Enums mit impliziten und expliziten Diskriminatoren.

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/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/DataTypesGroup -.-> rust/type_casting("Type Conversion and Casting") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") subgraph Lab Skills rust/integer_types -.-> lab-99255{{"Rust Enum-Verwendungsbeispiele"}} rust/type_casting -.-> lab-99255{{"Rust Enum-Verwendungsbeispiele"}} rust/function_syntax -.-> lab-99255{{"Rust Enum-Verwendungsbeispiele"}} rust/expressions_statements -.-> lab-99255{{"Rust Enum-Verwendungsbeispiele"}} end

C-ähnlich

enum kann auch als C-ähnliche Enums verwendet werden.

// Ein Attribut, um Warnungen für nicht genutzten Code zu unterdrücken.
#![allow(dead_code)]

// enum mit implizitem Diskriminator (beginnt bei 0)
enum Number {
    Zero,
    One,
    Two,
}

// enum mit explizitem Diskriminator
enum Color {
    Red = 0xff0000,
    Green = 0x00ff00,
    Blue = 0x0000ff,
}

fn main() {
    // `enums` können als Ganzzahlen umgewandelt werden.
    println!("zero is {}", Number::Zero as i32);
    println!("one is {}", Number::One as i32);

    println!("roses are #{:06x}", Color::Red as i32);
    println!("violets are #{:06x}", Color::Blue as i32);
}

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das C-ähnliche Lab abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.