rilis bahasa pemrograman sistem , didirikan oleh proyek Mozilla. Bahasa ini berfokus pada keamanan memori, menyediakan manajemen memori otomatis, dan menyediakan alat untuk mencapai paralelisme tugas yang tinggi tanpa menggunakan pengumpul sampah dan .
Manajemen memori otomatis Rust membebaskan pengembang dari manipulasi penunjuk dan melindungi dari masalah yang timbul dari manipulasi memori tingkat rendah, seperti akses memori setelah bebas, dereferensi penunjuk nol, buffer overruns, dan sejenisnya. Manajer paket sedang dikembangkan untuk mendistribusikan perpustakaan, memastikan perakitan dan mengelola ketergantungan oleh proyek. , memungkinkan Anda mendapatkan perpustakaan yang diperlukan untuk program dalam satu klik. Repositori didukung untuk menghosting perpustakaan .
Utama :
- Makro menyediakan kemampuan untuk menggunakan fragmen elemen guna mengubahnya menjadi kode untuk sifat, implementasi (implementasi), atau blok eksternal. Misalnya:
aturan_makro! sifat_makro {
($i:barang) => {
sifat T { $i }
}
}
sifat_mac! {
fn foo() {}
}Akan menghasilkan:
sifat T {
fn foo() {}
} - Peningkatan deteksi tipe untuk primitif, referensi, dan operasi biner.
Misalnya, kode berikut, yang sebelumnya menyebabkan kesalahan, sekarang akan dikompilasi (Rust sekarang mendeteksi dengan benar bahwa 0.0 dan &0.0 harus bertipe f32):misalkan n: f32 = 0.0 + &0.0;
- Variabel lingkungan baru, CARGO_BIN_EXE_{name}, telah ditambahkan ke Cargo. Variabel ini diatur saat membangun pengujian integrasi dan memungkinkan Anda menentukan jalur lengkap ke berkas yang dapat dieksekusi yang didefinisikan di bagian "[[bin]]" pada paket.
- Atribut seperti #[cfg()] diizinkan dalam pernyataan "if".
- Pustaka ini menyediakan kemampuan untuk menggunakan konstanta terkait secara langsung untuk tipe integer dan fraksional, tanpa perlu mengimpor modul. Misalnya, Anda dapat langsung menulis u32::MAX atau f32::NAN tanpa terlebih dahulu menentukan "use std::u32" dan "use std::f32".
- Modul baru ditambahkan , yang mengekspor ulang tipe primitif Rust, misalnya saat Anda perlu menulis makro dan memastikan bahwa tipe tidak disembunyikan.
- Sebagian API baru telah dipindahkan ke kategori stabil, termasuk stabil
Once::is_completed,
f32::LOG10_2,
f32::LOG2_10,
f64::LOG10_2,
f64::LOG2_10 dan
iter::once_with.
Sumber: opennet.ru
