Lingua di prugrammazione Rust versione 1.43

publicatu liberazione di lingua di prugrammazione di u sistema Ruggine 1.43, fundatu da u prughjettu Mozilla. A lingua si focalizeghja nantu à a sicurità di a memoria, furnisce una gestione automatica di a memoria, è furnisce strumenti per ottene un parallelismu elevatu di u travagliu senza usà un cullettore di basura è runtime.

A gestione automatica di a memoria di Rust libera u sviluppatore da a manipulazione di u puntatore è prutegge da i prublemi derivanti da a manipulazione di a memoria di livellu bassu, cum'è l'accessu à a memoria dopu, i dereferences di puntatori nulli, i buffer overruns, è simili. Un gestore di pacchetti hè sviluppatu per distribuisce biblioteche, assicurà l'assemblea è gestisce e dipendenze da u prugettu. Cargo, chì permette di ottene e librerie necessarie per u prugramma in un clic. Un repository hè supportatu per ospitare biblioteche crates.io.

menu innovazioni:

  • Macro furnisce l'abilità di utilizà frammenti di elementi per trasfurmà in codice per tratti (trait), implementazioni (impl) o blocchi esterni. Per esempiu:

    macro_rules! mac_trait {
    ($i:item) => {
    trait T {$i}
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Cunducerà à a generazione:

    trait T {
    fn foo() {}
    }

  • Rilevamentu di tipu migliuratu di primitivi, referenze è operazioni binari.
    Per esempiu, u codice seguente, chì prima hà causatu un errore, puderà avà cumpilà (Rust avà determina currettamente chì 0.0 è & 0.0 deve esse di tipu f32):

    sia n: f32 = 0.0 + & 0.0;

  • Una nova variabile di l'ambiente CARGO_BIN_EXE_{name} hè stata aghjunta à Cargo, chì hè stabilitu quandu custruisce e teste di integrazione è vi permette di determinà u percorsu sanu à u schedariu eseguibile definitu in a sezione "[[bin]]" di u pacchettu.
  • Se e dichjarazioni sò permessi di utilizà attributi cum'è "#[cfg()]".
  • A biblioteca furnisce a capacità di utilizà custanti assuciati direttamente per i tipi interi è fraccionari, senza impurtà un modulu. Per esempiu, pudete scrive immediatamente u32::MAX o f32::NAN senza prima specificà "use std::u32" è "use std::f32".
  • Un novu modulu aghjuntu primitivu, chì re-exports Rust tipi primitivi, per esempiu quandu avete bisognu di scrive una macro è assicuratevi chì i tipi ùn sò micca ammucciati.
  • Una nova parte di l'API hè stata trasferita à a categuria stabile, cumpresa stabilizzata

    Una volta :: hè_cumplitu,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 è
    iter::una volta_cun.

Source: opennet.ru

Add a comment