
et est probablement la version la plus riche en termes de fonctionnalités depuis Rust 1.0
L'équipe de Rust a annoncé la sortie de la version 1.26.0 du langage de programmation Rust. Pour rappel, ce dernier est un langage de programmation système ultra-rapide, qui prévient les erreurs de segmentation et garantit la sûreté entre threads. Pendant près de 18 mois, Carol, Steve et d'autres ont travaillé sur la réécriture complète de « The Rust Programming Language ». Depuis la version 1.0 du langage de programmation, la version 1.26 est la version stable la plus riche en fonctionnalités d'après les développeurs de Rust. Les autres ayant reçu que quelques changements mineurs.
Si vous avez une version antérieure de Rust installée via rustup, pour obtenir Rust 1.26.0, vous pouvez exécuter cette commande : $ rustup update stable. Mais, si vous ne l'avez pas encore installé, vous pouvez l'obtenir ici.
Qu'est-ce qu'il y a de nouveau avec la version 1.26.0 du langage Rust ?
L'ajout de la fonctionnalité impl Trait qui a longtemps été réclamée par la communauté des développeurs Rust, car elle fournit une fonctionnalité connue sous le nom de « types existentiels ».
Code rust : | Sélectionner tout |
fn foo () -> impl Trait { // ... }
Code rust : | Sélectionner tout |
1 2 3 4 5 | // before fn foo < T : Trait > ( x : T ) { // after fn foo ( x : impl Trait ) { |
L'équipe Rust a aussi apporté des améliorations à la fonctionnalité match. Elle était au préalable utilisée comme ci-dessous :
Code rust : | Sélectionner tout |
1 2 3 4 5 6 7 | fn hello(arg: &Option<String>) { match arg { &Some(name) => println!("Hello {}!", name), &None => println!("I don't know who you are."), } } |
Code rust : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | error[E0507]: cannot move out of borrowed content --> src/main.rs:6:9 | 6 | &Some(name) => println!("Hello {}!", name), | ^^^^^^----^ | | | | | hint: to prevent move, use `ref name` or `ref mut name` | cannot move out of borrowed content |
Code rust : | Sélectionner tout |
1 2 3 4 5 6 7 | fn hello(arg: &Option<String>) { match arg { &Some(ref name) => println!("Hello {}!", name), &None => println!("I don't know who you are."), } } |
Code rust : | Sélectionner tout |
match arg { Some ( name ) => println! ( "Hello {}!" , name ),
Dans Rust 1.26, il sera maintenant possible de déclarer la fonction main qui renvoie Result :
Code rust : | Sélectionner tout |
1 2 3 4 5 6 | use std::fs::File; fn main() -> Result<(), std::io::Error> { let f = File::open("bar.txt")?; Ok(()) } |
Dans Rust 1.26, vous pouvez maintenant créer une plage inclusive, comme ceci :
Code rust : | Sélectionner tout |
1 2 3 4 | for i in 1. .= 3 { println! ( "i: {}" , i ); } |
Dans Rust 1.0, nous avions été en mesure de créer des gammes exclusives avec . . comme ceci :
Code rust : | Sélectionner tout |
1 2 3 4 | for i in 1. .= 3 { println! ( "i: {}" , i ); } |
L'équipe du langage de programmation Rust dit avoir également stabilisé la bibliothèque fs::read_to_string, une commodité sur File::open et io::Read::read_to_string pour lire facilement un fichier entier en mémoire à la fois :
Code rust : | Sélectionner tout |
1 2 3 4 | use std :: fs; use std :: net :: SocketAddr; let foo : SocketAddr = fs :: read_to_string ( "address.txt" )?.parse ()?; |
Code rust : | Sélectionner tout |
assert! ( format! ( "{:02x?}" , b "Foo\0" ) == "[46, 6f, 6f, 00]" )
Les virgules de fin sont maintenant supportées par toutes les macros de la bibliothèque standard.
Source : Rust
Et vous ?


Voir aussi :



Vous avez lu gratuitement 1 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.