Rust 1.43 Programméiersprooch Fräisetzung

publizéiert System Programméierungssprooch Verëffentlechung roscht 1.43, gegrënnt vum Mozilla-Projet. D'Sprooch konzentréiert sech op d'Erënnerungssécherheet, bitt automatesch Gedächtnisverwaltung a liwwert Tools fir en héije Aufgabeparallelismus z'erreechen ouni e Gerempels ze benotzen an Course.

Rust automatesch Erënnerung Gestioun befreit den Entwéckler vun Pointer Manipulatioun a schützt géint Problemer déi aus niddereg-Niveau Erënnerung Manipulatioun entstinn, wéi no-gratis Erënnerung Accès, Null Pointer dereferences, Puffer Iwwerstonnen, an dergläiche. E Package Manager gëtt entwéckelt fir Bibliothéiken ze verdeelen, Assemblée ze garantéieren an Ofhängegkeete vum Projet ze managen. cargo, erlaabt Iech d'Bibliothéike fir de Programm an engem Klick ze kréien. E Repository gëtt ënnerstëtzt fir Bibliothéiken ze hosten crates.io.

Haaptstrooss Innovatiounen:

  • Makroen bidden d'Fäegkeet Fragmenter vun Elementer ze benotzen fir se a Code fir Charakteren (Trait), Implementatiounen (impl) oder extern Blocks ze maachen. Zum Beispill:

    macro_regelen! mac_trait {
    ($i:item) => {
    Trait T {$i}
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Féiert zu Generatioun:

    Trait T {
    fn foo() {}
    }

  • Verbessert Typ Detektioun vu Primitiven, Referenzen a Binär Operatiounen.
    Zum Beispill, de folgende Code, dee virdru e Feeler verursaacht huet, wäert elo fäeg sinn ze kompiléieren (Rust bestëmmt elo richteg datt 0.0 an &0.0 vum Typ f32 musse sinn):

    loossen n: f32 = 0.0 + & 0.0;

  • Eng nei Ëmfeldvariabel CARGO_BIN_EXE_{name} gouf op d'Cargo bäigefüügt, déi festgeluecht gëtt wann Dir Integratiounstester bauen an Iech erlaabt de komplette Wee fir déi ausführbar Datei ze bestëmmen déi an der "[[bin]]" Sektioun vum Package definéiert ass.
  • Wann Aussoen erlaabt sinn Attributer wéi "#[cfg()] ze benotzen.
  • D'Bibliothéik bitt d'Fäegkeet assoziéiert Konstanten direkt fir ganz Zuelen a Fraktiounstypen ze benotzen, ouni e Modul z'importéieren. Zum Beispill, Dir kënnt direkt u32 :: MAX oder f32 :: NAN schreiwen ouni éischt "benotzen std :: u32" an "benotzen std :: f32" uginn.
  • Neie Modul dobäi primitive sinn, déi Rust primitiv Typen nei exportéiert, zum Beispill wann Dir e Makro schreiwe musst a sécherstellen datt d'Typen net verstoppt sinn.
  • En neien Deel vun APIen gouf an déi stabil Kategorie transferéiert, dorënner stabiliséiert

    Eemol :: ass_ofgeschloss,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 an
    iter :: eemol_mat.

Source: opennet.ru

Setzt e Commentaire