Constantes littérales et spécification de type en Rust

RustRustBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous apprenons les littéraux en Rust et comment spécifier leur type en ajoutant un suffixe. Les littéraux suffixés ont leur type connu lors de l'initialisation, tandis que les types des littéraux non suffixés dépendent de la manière dont ils sont utilisés. La fonction size_of_val est utilisée pour déterminer la taille d'une variable en octets, et elle est appelée avec son chemin complet, std::mem::size_of_val. La fonction size_of_val est définie dans le module mem, qui est lui-même défini dans la boîte à outils std.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/DataStructuresandEnumsGroup -.-> rust/method_syntax("Method Syntax") subgraph Lab Skills rust/variable_declarations -.-> lab-99296{{"Constantes littérales et spécification de type en Rust"}} rust/function_syntax -.-> lab-99296{{"Constantes littérales et spécification de type en Rust"}} rust/expressions_statements -.-> lab-99296{{"Constantes littérales et spécification de type en Rust"}} rust/method_syntax -.-> lab-99296{{"Constantes littérales et spécification de type en Rust"}} end

Literaux

Les littéraux numériques peuvent être annotés avec un type en ajoutant le type en tant que suffixe. Par exemple, pour spécifier que le littéral 42 doit avoir le type i32, écrivez 42i32.

Le type des littéraux numériques non suffixés dépendra de la manière dont ils sont utilisés. Si aucune contrainte n'existe, le compilateur utilisera i32 pour les entiers et f64 pour les nombres à virgule flottante.

fn main() {
    // Littéraux suffixés, leur type est connu lors de l'initialisation
    let x = 1u8;
    let y = 2u32;
    let z = 3f32;

    // Littéraux non suffixés, leur type dépend de la manière dont ils sont utilisés
    let i = 1;
    let f = 1.0;

    // `size_of_val` renvoie la taille d'une variable en octets
    println!("taille de `x` en octets : {}", std::mem::size_of_val(&x));
    println!("taille de `y` en octets : {}", std::mem::size_of_val(&y));
    println!("taille de `z` en octets : {}", std::mem::size_of_val(&z));
    println!("taille de `i` en octets : {}", std::mem::size_of_val(&i));
    println!("taille de `f` en octets : {}", std::mem::size_of_val(&f));
}

Il y a quelques concepts utilisés dans le code précédent qui n'ont pas été expliqués encore. Voici une brève explication pour les lecteurs impatients :

  • std::mem::size_of_val est une fonction, mais appelée avec son chemin complet. Le code peut être divisé en unités logiques appelées modules. Dans ce cas, la fonction size_of_val est définie dans le module mem, et le module mem est défini dans la boîte à outils std. Pour plus de détails, consultez les modules et les boîtes à outils.

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur les littéraux. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.