Erkundung von Rust Primitivtypen

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 werden Sie die verschiedenen primitiven Datentypen kennenlernen, die von Rust bereitgestellt werden, einschließlich skalarer Datentypen wie vorzeichenbehaftete und vorzeichenlose Ganzzahlen, Gleitkommazahlen, Unicode-Skalarwerte, boolesche Werte und den Einheitstyp. Sie werden auch zusammengesetzte Datentypen wie Arrays und Tupel erkunden und lernen, wie Sie Variablen mit ihren jeweiligen Datentypen annotieren oder Rust erlauben, die Datentypen aus dem Kontext zu inferieren.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/MemorySafetyandManagementGroup(["Memory Safety and Management"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/BasicConceptsGroup -.-> rust/mutable_variables("Mutable Variables") rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/DataTypesGroup -.-> rust/floating_types("Floating-point Types") rust/DataTypesGroup -.-> rust/boolean_type("Boolean Type") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/MemorySafetyandManagementGroup -.-> rust/lifetime_specifiers("Lifetime Specifiers") subgraph Lab Skills rust/variable_declarations -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/mutable_variables -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/integer_types -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/floating_types -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/boolean_type -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/function_syntax -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/expressions_statements -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} rust/lifetime_specifiers -.-> lab-99191{{"Erkundung von Rust Primitivtypen"}} end

Primitivdatentypen

Rust bietet Zugang zu einer Vielzahl von Primitivdatentypen. Ein Beispiel ist:

Skalarwerte

  • Vorzeichenbehaftete Ganzzahlen: i8, i16, i32, i64, i128 und isize (Zeigergröße)
  • Vorzeichenlose Ganzzahlen: u8, u16, u32, u64, u128 und usize (Zeigergröße)
  • Gleitkommazahlen: f32, f64
  • char Unicode-Skalarwerte wie 'a', 'α' und '∞' (jeweils 4 Bytes)
  • bool entweder true oder false
  • Der Einheitstyp (), dessen einzig möglicher Wert ein leeres Tupel ist: ()

Trotz des Werts eines Einheitstyps ist es ein Tupel, wird er nicht als zusammengesetzter Typ betrachtet, da er keine mehreren Werte enthält.

Zusammengesetzte Typen

  • Arrays wie [1, 2, 3]
  • Tupel wie (1, true)

Variablen können immer typannotiert werden. Zahlen können zusätzlich über einen Suffix oder standardmäßig annotiert werden. Ganzzahlen haben standardmäßig den Typ i32 und Gleitkommazahlen den Typ f64. Beachten Sie, dass Rust auch Typen aus dem Kontext ableiten kann.

fn main() {
    // Variablen können typannotiert werden.
    let logisch: bool = true;

    let eine_flaechenzahl: f64 = 1.0;  // Regelmäßige Annotation
    let eine_ganzzahl   = 5i32; // Suffix-Annotation

    // Oder ein Standardwert wird verwendet.
    let standard_flaechenzahl   = 3.0; // `f64`
    let standard_ganzzahl = 7;   // `i32`

    // Ein Typ kann auch aus dem Kontext abgeleitet werden.
    let mut abgeleiteter_typ = 12; // Typ i64 wird aus einer anderen Zeile abgeleitet.
    abgeleiteter_typ = 4294967296i64;

    // Der Wert einer mutablen Variablen kann geändert werden.
    let mut mutabel = 12; // Mutabler `i32`
    mutabel = 21;

    // Fehler! Der Typ einer Variablen kann nicht geändert werden.
    mutabel = true;

    // Variablen können mit Shadowing überschrieben werden.
    let mutabel = true;
}

Zusammenfassung

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