Rust 1.46.0: melhorias em track_caller e const fn

A equipe Rust tem o prazer de anunciar a nova versão do Rust 1.46.0. Rust é uma linguagem de programação que permite a qualquer pessoa criar um software confiável e eficiente.



Se você tiver uma versão anterior do Rust instalada via rustup, obter o Rust 1.46.0 é tão fácil quanto:



rustup update stable


Se ainda não o tiver feito rustup, você pode instalá-lo da página apropriada em nosso site e ver as notas de versão detalhadas 1.46.0 no GitHub.



O que está incluído na versão estável 1.46.0



Esta versão é relativamente pequena, com melhorias na const fnestabilização de duas novas APIs na biblioteca padrão e uma opção para autores de biblioteca. Consulte as notas de versão detalhadas para outras alterações não abordadas neste anúncio.



#[track_caller]



Em março, quando o Rust 1.42 foi lançado, , unwraprecursos como esse estavam causando pânico . Mencionamos então que a implementação ainda não é estável. Em Rust 1,46, nós o estabilizamos.



#[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