Outils pour utilisateurs

Outils du site


nsi:langages:rust:variables

Variables

Constants par défaut

Toutes les variables sont constantes – ou dit autrement, immuables – par défaut.

let x = 0;

x = 5; // provoque une erreur, on ne peut changer x

Pour rendre x mutable, il faut le déclarer.

let mut x = 0;

x = 5; // là c'est bon

Les types

Comme en C, on peut définir finement la taille des données. On pourra ainsi préciser le nombre d'octets codant un nombre entier selon les besoin de notre programme.

  • i8 est le type entier 8 bits
  • i16, pour 16 bits
  • i32, pour 32 bits (même taille que le type int de Python)
  • i64
  • i128

Nous parlons ici d'entiers signés, c'est à dire qu'ils peuvent être négatif. Un entier de type i8 pour donc aller de -128 à 127.

Mais si on sait que l'on n'utilisera que des entiers positifs, on peut utiliser des entiers non signés (unsigned)

  • u8, entier non signé 8 bits, allant de 0 à 255
  • u16, u32, u64, u128 même principe

Pour les types flottants, on dispose des types simple précision (32 bits) et double précision (64 bits)

  • f32 flottant 32 bits
  • f64 flottant 64 bits

Les chaînes de caractère on le type String.

Les slices sont des morceaux de tableaux.

Inférence de type

Quand le compilateur peut deviner le type utilisé, il n'est pas nécessaire de préciser.

let i = 0; // i est de type entier mais on ne sait pas de quelle taille
let j = 10i32; // max de type i32

if i < j { // j étant un i32, i doit l'être également
    println!("i est inférieur à j.");
}
nsi/langages/rust/variables.txt · Dernière modification : de goupillwiki