Rust 1.46.0: perbaikan track_caller dan const fn

Tim Rust dengan bangga mengumumkan versi baru Rust 1.46.0. Rust adalah bahasa pemrograman yang memungkinkan siapa saja membuat perangkat lunak yang andal dan efisien.



Jika Anda memiliki versi Rust sebelumnya yang diinstal melalui Rustup, mendapatkan Rust 1.46.0 semudah:



rustup update stable


Jika Anda belum memilikinya rustup, Anda dapat menginstalnya dari halaman yang sesuai di situs web kami dan melihat catatan rilis 1.46.0 terperinci di GitHub.



Apa yang termasuk dalam versi stabil 1.46.0



Rilis ini cukup kecil, dengan peningkatan const fn, stabilisasi dua API baru di pustaka standar dan satu opsi untuk penulis pustaka. Lihat catatan rilis mendetail untuk perubahan lain yang tidak tercakup dalam pengumuman ini.



#[track_caller]



Kembali pada bulan Maret, ketika Rust 1.42 dirilis, , unwrapdan fitur serupa menyebabkan kepanikan . Kami sebutkan kemudian bahwa implementasinya belum stabil. Di Rust 1.46, kami menstabilkannya.



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