Rust 1.43 Proqramlaşdırma Dili Buraxılışı

nəşr edilmişdir sistem proqramlaşdırma dili buraxılışı Pas 1.43, Mozilla layihəsi tərəfindən yaradılmışdır. Bu dil yaddaşın təhlükəsizliyinə diqqət yetirir, yaddaşın avtomatik idarə edilməsini təmin edir və zibil toplayıcıdan istifadə etmədən yüksək tapşırıq paralelliyinə nail olmaq üçün alətlər təqdim edir. uzunluğu.

Rust-un avtomatik yaddaş idarəçiliyi tərtibatçını göstəricilərin manipulyasiyasından azad edir və boş yaddaşa daxil olma, boş göstəricidən imtina, buferin aşılması və s. kimi aşağı səviyyəli yaddaş manipulyasiyasından yaranan problemlərdən qoruyur. Kitabxanaları yaymaq, montajı təmin etmək və layihə tərəfindən asılılıqları idarə etmək üçün paket meneceri hazırlanır. Yük, proqram üçün lazım olan kitabxanaları bir kliklə əldə etməyə imkan verir. Kitabxanaların saxlanması üçün repozitoriya dəstəklənir crates.io.

Əsas yeniliklər:

  • Makrolar elementlərin fraqmentlərindən istifadə edərək onları əlamətlər (xüsusiyyət), tətbiqlər (impl) və ya xarici bloklar üçün koda çevirmək imkanı verir. Misal üçün:

    makro_qaydalar! mac_trait {
    ($i:element) => {
    xüsusiyyət T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Nəsil gətirəcək:

    xüsusiyyət T {
    fn foo() {}
    }

  • Primitivlərin, istinadların və ikili əməliyyatların təkmilləşdirilmiş tip aşkarlanması.
    Məsələn, əvvəllər xətaya səbəb olan aşağıdakı kod indi tərtib edə biləcək (Rust indi düzgün müəyyən edir ki, 0.0 və &0.0 f32 tipində olmalıdır):

    qoy n: f32 = 0.0 + &0.0;

  • İnteqrasiya testləri qurarkən təyin olunan və paketin “[[bin]]” bölməsində müəyyən edilmiş icra olunan faylın tam yolunu müəyyən etməyə imkan verən yeni CARGO_BIN_EXE_{name} mühit dəyişəni Cargo-ya əlavə edildi.
  • Əgər ifadələrə "#[cfg()]" kimi atributlardan istifadə etməyə icazə verilirsə.
  • Kitabxana modul idxal etmədən birbaşa tam və kəsr növləri üçün əlaqəli sabitlərdən istifadə etmək imkanı verir. Məsələn, əvvəlcə “use std::u32” və “use std::f32” qeyd etmədən dərhal u32::MAX və ya f32::NAN yaza bilərsiniz.
  • Yeni modul əlavə edildi ibtidai, Rust primitiv növlərini yenidən ixrac edir, məsələn, makro yazmaq və növlərin gizlədilmədiyinə əmin olmaq lazım olduqda.
  • API-lərin yeni hissəsi stabilləşdirilmişlər də daxil olmaqla stabil kateqoriyaya köçürülüb

    Bir dəfə::tamamlandı,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 və
    iter::bir dəfə_birlikdə.

Mənbə: opennet.ru

Добавить комментарий