Rust 1.43 Programming Language Release

gepubliseer stelsel programmeertaal vrystelling Roes 1.43gestig deur die Mozilla-projek. Die taal fokus op veilige geheuebestuur, verskaf outomatiese geheuebestuur, en verskaf die middele om hoΓ« werkparallelisme te bereik terwyl die gebruik van 'n vullisverwyderaar en runtime.

Rust se outomatiese geheuebestuur spaar die ontwikkelaar daarvan om wysers te manipuleer en beskerm teen probleme wat voortspruit uit laevlakgeheuemanipulasie, soos om toegang tot 'n geheuearea te kry nadat dit vrygestel is, die herkenning van nulwysers, bufferoorskryding, ens. Om biblioteke te versprei, samestelling te verseker en afhanklikhede te bestuur, ontwikkel die projek 'n pakketbestuurder Cargo, wat jou in staat stel om die biblioteke wat jy nodig het vir die program in een klik te kry. 'n Bewaarplek word ondersteun om biblioteke te huisves kratte.io.

Die belangrikste innovasies:

  • Makro's bied die vermoΓ« om fragmente van elemente te gebruik om dit te omskep in kode vir eienskappe (eienskap), implementerings (impl) of eksterne blokke. Byvoorbeeld:

    makro_reΓ«ls! mac_trait {
    ($i:item) => {
    eienskap T { $i }
    }
    }
    mac_eienskap! {
    fn foo() {}
    }

    Sal lei tot generasie:

    eienskap T {
    fn foo() {}
    }

  • Verbeterde tipe opsporing van primitiewe, verwysings en binΓͺre bewerkings.
    Byvoorbeeld, die volgende kode, wat voorheen 'n fout veroorsaak het, sal nou kan saamstel (Rust bepaal nou korrek dat 0.0 en &0.0 van tipe f32 moet wees):

    laat n: f32 = 0.0 + &0.0;

  • 'n Nuwe omgewingsveranderlike CARGO_BIN_EXE_{name} is by Cargo gevoeg, wat gestel word wanneer integrasietoetse gebou word en jou toelaat om die volle pad na die uitvoerbare lΓͺer te bepaal wat in die "[[bin]]"-afdeling van die pakket gedefinieer is.
  • As stellings toegelaat word om eienskappe soos "#[cfg()] te gebruik".
  • Die biblioteek bied die vermoΓ« om geassosieerde konstantes direk vir heelgetal- en breuktipes te gebruik, sonder om 'n module in te voer. Byvoorbeeld, jy kan onmiddellik u32::MAX of f32::NAN skryf sonder om eers "use std::u32" en "use std::f32" te spesifiseer.
  • Nuwe module bygevoeg primitiewe, wat Roes primitiewe tipes weer uitvoer, byvoorbeeld wanneer jy 'n makro moet skryf en seker maak dat die tipes nie weggesteek word nie.
  • 'n Nuwe gedeelte van API's is na die stabiele kategorie oorgeplaas, insluitend gestabiliseer

    Sodra::is_voltooid is,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 en
    iter::eens_met.

Bron: opennet.ru

Voeg 'n opmerking