
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 :


