Keluaran bahasa pengaturcaraan Rust 1.35

mengambil tempat keluaran bahasa pengaturcaraan sistem Karat 1.35dibangunkan oleh projek Mozilla. Bahasa ini memberi tumpuan kepada pengurusan memori yang selamat, menyediakan pengurusan memori automatik dan menyediakan cara untuk mencapai keselarian kerja yang tinggi sambil mengelakkan penggunaan pengumpul sampah dan masa jalan.

Pengurusan memori automatik Rust menyelamatkan pembangun daripada memanipulasi penunjuk dan melindungi daripada masalah yang timbul daripada manipulasi memori peringkat rendah, seperti mengakses kawasan memori selepas ia dibebaskan, membatalkan penunjuk nol, overrun penimbal, dsb. Untuk mengedarkan perpustakaan, memastikan pemasangan dan mengurus kebergantungan, projek membangunkan pengurus pakej Cargo, yang membolehkan anda mendapatkan perpustakaan yang anda perlukan untuk program dalam satu klik. Repositori disokong untuk mengehos perpustakaan crates.io.

Utama inovasi:

  • sifat FnSekali, FnMut и Fn dilaksanakan untuk timbunan diperuntukkan jenis kotak Box‹dyn FnOnce›, Box‹dyn FnMut› dan Box‹dyn Fn›;
  • Ditambah peluang menghantar penutupan kepada penunjuk fungsi tidak selamat (fn tidak selamat);
  • Melaksanakan keupayaan untuk memanggil makro "dbg!" tanpa hujah untuk memaparkan nama fail dan nombor baris dalam stderr tanpa memeriksa pembolehubah, yang sesuai untuk menyahpepijat operasi ungkapan bersyarat;
  • Menambah kaedah " kepada jenis titik terapung f32 dan f64copysign» untuk menyalin aksara daripada satu nombor ke nombor lain;
  • Kaedah tambahan "mengandungi“, yang membolehkan anda menyemak sama ada nilai yang ditentukan berada dalam julat;
  • Kaedah ditambah Ruj:Cell:map_split, membolehkan anda mencerminkan dan mengasingkan nilai RefCell yang dipinjam untuk komponen berbeza data yang dipinjam;
  • Kaedah ditambah RefCell::replace_with untuk menggantikan nilai RefCell semasa dan mengembalikan nilai lama sebagai hasilnya;
  • Kaedah ditambah ptr::cincang untuk mencincang penunjuk atau rujukan dengan alamat dan bukannya nilai yang dialamatkan;
  • Kaedah ditambah Pilihan::disalin untuk menyalin kandungan pilihan Option‹&T› atau Option‹&mut T›;
  • Bahagian baharu API telah dipindahkan ke kategori stabil, termasuk kaedah yang telah distabilkan
    f32::copysign,
    f64::copysign,
    RefCell::ganti_dengan,
    RefCell::map_split,
    ptr::cincang,
    Julat::mengandungi,
    RangeFrom::mengandungi,
    RangeTo::contains,
    RangeInclusive::mengandungi,
    RangeToInclusive::mengandungi dan
    Pilihan::disalin;

  • Semakan drop_bounds telah ditambahkan pada clippy (linter), yang dicetuskan apabila menambah pengikatan "T: Drop" pada fungsi;
  • Pengkompil telah menambah sokongan untuk platform sasaran baharu
    wasm32-unknown-wasi (antara muka ADAKAH SAYA untuk menggunakan WebAssembly di luar pelayar);

  • Kit alat Rust disesuaikan untuk pengedaran berdasarkan Musl perpustakaan C standard.

Sumber: opennet.ru

Tambah komen