Rust 1.46.0: améliorations track_caller et const fn

L'équipe Rust est heureuse d'annoncer la nouvelle version de Rust 1.46.0. Rust est un langage de programmation qui permet à n'importe qui de créer des logiciels fiables et efficaces.



Si vous avez une version précédente de Rust installée via rustup, obtenir Rust 1.46.0 est aussi simple que:



rustup update stable


Si vous ne l'avez pas déjà rustup, vous pouvez l' installer à partir de la page appropriée de notre site Web et consulter les notes de publication détaillées de la 1.46.0 sur GitHub.



Ce qui est inclus dans la version stable 1.46.0



Cette version est assez petite, avec des améliorations const fn, la stabilisation de deux nouvelles API dans la bibliothèque standard et une option pour les auteurs de bibliothèques. Consultez les notes de version détaillées pour d' autres modifications non couvertes dans cette annonce.



#[track_caller]



En mars, lorsque Rust 1.42 est sorti, des , unwrapfonctionnalités comme celle-ci provoquaient la panique . Nous avons mentionné alors que l'implémentation n'est pas encore stable. Dans Rust 1.46, nous l'avons stabilisé.



#[track_caller] RFC 2091 2017! , unwrap, , , . , unwrap:



pub fn unwrap(self) -> T {
    match self {
        Some(val) => val,
        None => panic!(" `Option::unwrap()`   `None`"),
    }
}


:



#[track_caller]
pub fn unwrap(self) -> T {
    match self {
        Some(val) => val,
        None => panic!(" `Option::unwrap()`   `None`"),
    }
}


!



, std::panic::Location, .



const fn



const fn , :



  • if, if let match
  • while, while let loop
  • && ||


:



const fn foo() {
  let x = [1, 2, 3, 4, 5];

  //    
  let y: &[_] = &x;
}


, , const fn, ! , , const-sha1 SHA1 . 40- Microsoft WinRT Rust.





const fn, std::mem::forget const fn. API:





, .





, Cargo Clippy .



1.46.0



, Rust 1.46.0. . !





Rust - . , .

opencollective: https://opencollective.com/rust-lang-ru.



funkill, Hirrolot andreevlex.




All Articles