Rust 1.35 Programming Language Release

plaasgevind stelsel programmeertaal vrystelling Roes 1.35ontwikkel deur die Mozilla-projek. Die taal fokus op veilige geheuebestuur, verskaf outomatiese geheuebestuur en bied die middele om hoë werkparallelisme te bereik terwyl die gebruik van 'n vullisverwyderaar en looptyd vermy word.

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:

  • Eienskappe FnOnce, FnMut и Fn geïmplementeer vir hoop-toegewys boks tipes Box‹dyn FnOnce›, Box‹dyn FnMut› en Box‹dyn Fn›;
  • Bygevoeg geleentheid giet sluitings na onveilige funksiewysers (onveilige fn);
  • Implementeer die vermoë om die makro "dbg!" sonder argumente om die lêernaam en reëlnommer in stderr te vertoon sonder om die veranderlike te inspekteer, wat gerieflik is om die werking van voorwaardelike uitdrukkings te ontfout;
  • Bygevoeg metode " by drywende punt tipes f32 en f64kopieteken» om 'n karakter van een nommer na 'n ander te kopieer;
  • Bygevoeg metode "bevat“, wat jou toelaat om te kyk of die gespesifiseerde waarde binne die reeks is;
  • Bygevoeg metode Verw:Sel:kaart_split, wat jou toelaat om die geleende RefCell-waarde vir verskillende komponente van die geleende data te reflekteer en te skei;
  • Bygevoeg metode RefCell::vervang_met om die huidige RefCell-waarde te vervang en die ou waarde as die resultaat terug te gee;
  • Bygevoeg metode ptr::hash om 'n wyser of verwysing deur 'n adres eerder as die geadresseerde waarde te hash;
  • Bygevoeg metode Opsie::gekopieer om die inhoud van die Opsie‹&T› of Opsie‹&mut T› opsies te kopieer;
  • 'n Nuwe gedeelte van API's is na die stabiele kategorie oorgeplaas, insluitend metodes wat gestabiliseer is
    f32::kopieteken,
    f64::kopieteken,
    RefCell::vervang_met,
    RefCell::map_split,
    ptr::hash,
    Reeks::bevat,
    RangeFrom::bevat,
    RangeTo::bevat,
    RangeInclusive::bevat,
    RangeToInclusive::bevat en
    Opsie::gekopieer;

  • Bygevoeg drop_bounds-tjek by clippy (linter), wat geaktiveer word wanneer 'n "T: Drop"-binding by die funksie gevoeg word;
  • Die samesteller het ondersteuning bygevoeg vir 'n nuwe teikenplatform
    wasm32-unknown-wasi (koppelvlak WAS EK om WebAssembly buite die blaaier te gebruik);

  • Die Rust-gereedskapstel is aangepas vir verspreidings gebaseer op die standaard C-biblioteek Musl.

Bron: opennet.ru

Voeg 'n opmerking