Weşana Zimanê Bernamesaziyê Rust 1.42

weşandin serbestberdana zimanê bernamesaziya pergalê Rûst 1.42, ji hêla projeya Mozilla ve hatî damezrandin. Ziman balê dikişîne ser ewlehiya bîranînê, rêveberiya bîranînê ya otomatîkî peyda dike, û amûran peyda dike ji bo bidestxistina paraleliya peywira bilind bêyî karanîna berhevkarek çopê û davêjin.

Rêvebiriya bîranîna otomatîkî ya Rust pêşdebiran ji manîpulasyona nîşankerê azad dike û li hember pirsgirêkên ku ji manîpulasyona bîranînê ya nizm derdikevin, wek gihandina bîranîna bêpere, veqetandinên nîşangirên betal, zêdekirina tampon û yên wekî wan diparêze. Rêvebirek pakêtê ji bo belavkirina pirtûkxaneyan, misogerkirina civîn û birêvebirina girêdanên ji hêla projeyê ve tê pêşve xistin. Bar, dihêle hûn pirtûkxaneyên ku ji bo bernameyê hewce ne bi yek klîk bistînin. Depoyek ji bo pirtûkxaneyên mêvandar tê piştgirî kirin crates.io.

sereke nûbûnên:

  • Zêde kirin piştgirî ji bo şablonan ji bo lihevhatina parçeyên perçeyan (array dînamîk, perçe). Berê, destûr ji hevhatinên tam dihatin dayîn, lê naha mimkun e ku meriv avahiyên bi ".." nîşankirî bikar bîne da ku hêmanên mayî yên rêzê veşêre. Bo nimûne:

    fn foo(peyv: &[&str]) {
    peyvên lihevhatî {

    // hêmanên destpêkê yên rêzê kontrol dike û paşguh dike
    hêmanên li pey wan
    ["Silav", "Cîhan", "!", ..] => println!("Silav Cîhan!"),

    // du hêmanên pêşîn "Foo" û "Bar" kontrol dike, û yên mayî ne girîng in
    ["Foo", "Bar", ..] => println!("Baz"),

    // her tiştî paşguh bike, lê hêmana dawî divê "!" be.
    [.., “!”] => çapln!(“!!!”),

    // di beşa destpêkê de ji bilî hêmana paşîn, ku divê "z" be, em her tiştî vedigirin.
    [start @ .., "z"] => println!("bi: {:?} dest pê dike", destpêk),

    // di perça dawî de em her tiştî ji bilî hêmana yekem, ku divê "a" be, bixin.
    ["a", dawiya @ ..] => println!("bi: {:?} bi dawî dibe", dawî),

    rest => println!("{:?}", mayîn),
    }
    }

  • Makroyek nû "lihevhatî!", ku biwêjekê û qalibekê wekî têketinê digire, û "rast" vedigerîne ger nimûne bi bilêvkirinê re têkildar be. Şablon dikare operasyonên "|" bikar bîne û "eger".

    match self.partial_cmp(din) {
    Hin (kêm) => rast,
    _ => derewîn,
    }

    lihevhatî!(self.partial_cmp(din), Hinek (kêm))

    bila foo = 'f';
    assert!(hevhatî!(foo, 'A'..='Z' | 'a'..='z'));

    bila bar = Hin(4);
    piştrast bike!(hev dike!(bar, Hin(x) heke x > 2));

  • Di peyamên panîkê de dema ku çewt têne bikar anîn têne xuyang kirin
    Cureyên Vebijêrk û Encam, naha jimareyên rêzê bi lînka koda ku banga pirsgirêkê pêk aniye, li şûna lînkên koda ku bangê di libcore de bicîh dike nîşan bidin. Mînakî, guheztin bandorê li bangên jihevdexistinê dike û li ser Vebijêrk::Tiştek hêvî dike, an dema ku unwrap_err, hêvî, hêvî_err, û rêbazên mîna wan li ser celebê Encamê bikar tînin têk diçe.

  • Rêvebirê pakêta Kargo ji bo pakêtên bi makroyên prosedurî ​​veguheztina otomatîkî ya "proc_macro crate" di bloka "derve" de peyda dike. Ev guhertin dihêle ku rêwerznameya "bikaranîna" li ser makroyên prosedurê were sepandin bêyî ku di kodê de "crate extern proc_macro;" were destnîşankirin. Mînakî, heke bername rêzika "bikaranîna proc_macro::TokenStream;" bikar bîne, wê hingê kod dê nuha bixebite heke "extern crate proc_macro;" jê were rakirin.
  • Kapasîteyên pirtûkxaneya standard hatine berfireh kirin. Di iter::Empty zêde kirin Ji bo her nirxên T piştgirî bişînin û hevdeng bikin.
    Call Pin::{map_unchecked, map_unchecked_mut} teslîm kirin ji neçarî vegerandina nirxek celebek ji bo pêkanîna "Sized".
    Di io:: Kursor pêkanîn PartîEq û Wekhev. Taybetmendiya "const" îmkana karanîna di her çarçoveyê de li şûna domdar diyar dike, sepandin ji bo Layout :: rêbaza nû.

  • Beşek nû ya API-ê hate veguheztin kategoriya îstîqrar, di nav de CondVar-ya stabîlkirî::wait_while, CondVar::wait_timeout_while,
    DebugMap:: key, DebugMap:: nirx,
    Bi destan Drop::bigirin,
    ptr::slice_from_raw_parts_mut û ptr::slice_from_raw_parts.

  • Rêbaza Xeletî::rêveberî hate betal kirin.
  • Piştgiriya asta duyemîn ji bo platformên armv7a-none-eabi û riscv64gc-unknown-linux-gnu peyda kir. Piştgiriya pirtûkxaneya standard ji bo platforma riscv64gc-unknown-linux-gnu hatiye peyda kirin.
    Platformên 32-bit Apple daxistin heta asta sêyemîn piştgirî, ku tê wateya piştgiriya bingehîn, lê bêyî ceribandina otomatîk û weşandina avahiyên fermî. Daxistina di piştgirîyê de ji ber ku Apple êdî piştgirî nade platformên 32-bit e.

Source: opennet.ru

Add a comment