Cryoban a écrit : ↑ven. mars 26, 2021 12:43 pm
Ca a quoi de spécial RUST?
Rust c’est plutôt orienté bas niveau. Ça a été créé par Mozilla pour re-développer le moteur de Firefox et éviter les seg falt.
La grosse particularité de Rust (le langage, pas le JV) c’est de se vouloir sécurisé en contraignant fortement le contrôle des variables. En plus du typage fort, il y a une notion de possession et d’emprunt de celles-ci : à n’importe quel moment du code, il n’y a qu’un seul responsable d’une variable.
Une autre particularité c’est que, par défaut, tu es un peu obligé de traiter tous les cas de figures. Ou d’explicitement dire que tu ne le fais pas. Par exemple, si tu veux lister le contenu un répertoire, soit ça marche, soit ça marche pas (répertoire inexistant, pas les droits en lecture…). En Rust, ça te retourne un enum Rust avec le cas où ça marche et le cas où ça marche pas. Et c’est à toi de traiter chacun.
(Pseudo code, hein, je sais pas si c’est correct. J’ai pas fait de Rust depuis longtemps et je suis pas un cador)
Code : Tout sélectionner
let readResult = fs::read_dir("./"); /* retourne un Result<ReadDir> qui retourne un enum avec Ok() ou Err */
match readResult {
Ok(path) => {
/* traitement du cas où ça marche. On récupère un Iterator sur le contenu du répertoire */
for path in paths {
println!("Name: {}", path.unwrap().path().display())
}
},
Err(e) => {
/* traitement du cas où ça ne marcherait pas */
},
}
Si tu ne fais pas ça, le compilo t’envoie promener.
L’autre solution, c’est de dire explicitement au compilo « tkt, je gère, ça plantera pas » et si ça plante, bah le programme s’arrête et c’est bien fait pour toi. Mais ni toi ni le langage ne peuvent présupposer que ça va bien se passer.
Code : Tout sélectionner
let paths = fs::read_dir("./").unwrap(); /* avec le unwrap, on ne récupère directement l’Iterator si tout se passe bien. Sinon KABOOM! */
for path in paths {
println!("Name: {}", path.unwrap().path().display())
}
Dieu de l’alternative attitude.
Si je n'écris pas en vert, ce ne sont que mes opinions personnelles, rien à voir avec mon rôle de modérateur.
Modo de Schrödinger : odieux fakiste ultraliberale mascu / féminazgûl·e de la bien-pensance.