Rust 1.43 Варақаи забони барномасозӣ

нашр шудааст нашри забони барномасозии система Занги 1.43, аз ҷониби лоиҳаи Mozilla таъсис дода шудааст. Забон ба бехатарии хотира тамаркуз мекунад, идоракунии автоматии хотираро таъмин мекунад ва асбобҳоро барои ноил шудан ба параллелизми вазифаҳои баланд бидуни истифодаи коллектори партовҳо ва runtime.

Идоракунии хотираи автоматии Rust таҳиякунандаро аз коркарди нишондиҳандаҳо озод мекунад ва аз мушкилоте, ки дар натиҷаи коркарди хотираи сатҳи паст ба вуҷуд меоянд, ба монанди дастрасии пас аз хотираи хотира, истинодҳои нул нишондодҳо, изофаи буферӣ ва монанди инҳо муҳофизат мекунад. Менеҷери бастаҳо барои паҳн кардани китобхонаҳо, таъмини ҷамъбаст ва идоракунии вобастагӣ аз ҷониби лоиҳа таҳия карда мешавад. бор, ба шумо имкон медиҳад, ки китобхонаҳои барои барнома лозимиро бо як клик дастрас кунед. Барои китобхонаҳои мизбон як анбор дастгирӣ карда мешавад crates.io.

асосӣ навовариҳо:

  • Макросҳо қобилияти истифодаи порчаҳои элементҳоро барои табдил додани онҳо ба рамзи аломатҳо (хусусиятҳо), татбиқҳо (impl) ё блокҳои беруна таъмин мекунанд. Барои намуна:

    macro_reges! mac_trait {
    ($i: element) => {
    хислати T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    ба насл оварда мерасонад:

    хислати Т {
    fn foo() {}
    }

  • Муайян кардани навъи мукаммали ибтидоӣ, истинодҳо ва амалиёти дуӣ.
    Масалан, рамзи зерин, ки қаблан ба хатогӣ сабаб шуда буд, акнун метавонад тартиб диҳад (Руст ҳоло дуруст муайян мекунад, ки 0.0 ва &0.0 бояд навъи f32 бошад):

    бигзор n: f32 = 0.0 + & 0.0;

  • Ба Cargo тағирёбандаи нави муҳити зисти CARGO_BIN_EXE_{name} илова карда шуд, ки ҳангоми сохтани санҷишҳои ҳамгироӣ муқаррар карда мешавад ва ба шумо имкон медиҳад, ки роҳи пурраи файли иҷрошавандаро, ки дар бахши "[[bin]]" -и баста муайян шудааст, муайян кунед.
  • Агар ба изҳорот иҷозат дода шавад, ки атрибутҳоро истифода баранд, ба монанди "#[cfg()]".
  • Китобхона имкон медиҳад, ки константаҳои алоқамандро мустақиман барои намудҳои бутун ва касрӣ бидуни воридоти модул истифода баранд. Масалан, шумо метавонед фавран u32::MAX ё f32::NAN-ро бидуни муайян кардани "use std::u32" ва "use std::f32" нависед.
  • Модули нав илова карда шуд ибтидоӣ, ки навъҳои ибтидоии Rust-ро дубора содир мекунад, масалан, вақте ки шумо бояд макро нависед ва боварӣ ҳосил кунед, ки навъҳо пинҳон нестанд.
  • Қисми нави APIҳо ба категорияи устувор, аз ҷумла мӯътадил гузаронида шуд

    Як бор ::анҷом шуд,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64 :: LOG2_10 ва
    iter :: як маротиба_бо.

Манбаъ: opennet.ru

Илова Эзоҳ