ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช Rust 1.35

ื”ืชืจื—ืฉ ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช ืžืขืจื›ืช ื—ืœื•ื“ื” 1.35, ืฉืคื•ืชื— ืขืœ ื™ื“ื™ ืคืจื•ื™ืงื˜ ืžื•ื–ื™ืœื”. ื”ืฉืคื” ืžืชืžืงื“ืช ื‘ื‘ื˜ื™ื—ื•ืช ื–ื™ื›ืจื•ืŸ, ืžืกืคืงืช ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ืื•ื˜ื•ืžื˜ื™, ื•ืžืกืคืงืช ืืžืฆืขื™ ืœื”ืฉื’ืช ืžืงื‘ื™ืœื™ื•ืช ื’ื‘ื•ื”ื” ืฉืœ ืžืฉื™ืžื•ืช ืœืœื ืฉื™ืžื•ืฉ ื‘ืื•ืกืฃ ืืฉืคื” ืื• ื–ืžืŸ ืจื™ืฆื”.

ื ื™ื”ื•ืœ ื”ื–ื™ื›ืจื•ืŸ ื”ืื•ื˜ื•ืžื˜ื™ ืฉืœ Rust ืžืฉื—ืจืจ ืืช ื”ืžืคืชื— ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืžืฆื‘ื™ืขื™ื ื•ืžื’ืŸ ืžืคื ื™ ื‘ืขื™ื•ืช ื”ื ื•ื‘ืขื•ืช ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื–ื™ื›ืจื•ืŸ ื‘ืจืžื” ื ืžื•ื›ื”, ื›ื’ื•ืŸ ื’ื™ืฉื” ื—ื•ืคืฉื™ืช ืœื–ื™ื›ืจื•ืŸ, ื”ืคื ื™ื™ืช ืžืฆื‘ื™ืข null, ื—ืจื™ื’ื•ืช ืžืื’ืจ ื•ื›ื“ื•ืžื”. ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ืžืคื•ืชื— ืœื”ืคืฆืช ืกืคืจื™ื•ืช, ื”ื‘ื˜ื—ืช ื”ืจื›ื‘ื” ื•ื ื™ื”ื•ืœ ืชืœื•ืช ืขืœ ื™ื“ื™ ื”ืคืจื•ื™ืงื˜. ืžื˜ืขืŸ, ื”ืžืืคืฉืจ ืœืš ืœืงื‘ืœ ืืช ื”ืกืคืจื™ื•ืช ื”ื“ืจื•ืฉื•ืช ืœืชื•ื›ื ื™ืช ื‘ืœื—ื™ืฆื” ืื—ืช. ืžืื’ืจ ื ืชืžืš ื›ื“ื™ ืœืืจื— ืกืคืจื™ื•ืช crates.io.

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื:

  • ืชื›ื•ื ื•ืช FnOnce, FnMut ะธ Fn ืžื™ื•ืฉื ืขื‘ื•ืจ ื”ื•ืงืฆื• ืขืจื™ืžื” ืกื•ื’ื™ ืงื•ืคืกืื•ืช Boxโ€นdyn FnOnceโ€บ, Boxโ€นdyn FnMutโ€บ ื•-Boxโ€นdyn Fnโ€บ;
  • ื ื•ืกืฃ ื”ื–ื“ืžื ื•ืช ื™ืฆื™ืงืช ืกื’ืจื™ื ืœืžืฆื‘ื™ืขื™ ืคื•ื ืงืฆื™ื” ืœื ื‘ื˜ื•ื—ื™ื (fn ืœื ื‘ื˜ื•ื—);
  • ื”ื˜ืžื™ืข ืืช ื”ื™ื›ื•ืœืช ืœืงืจื•ื ืœืžืืงืจื• "dbg!" ืœืœื ืืจื’ื•ืžื ื˜ื™ื ืœื”ืฆื’ืช ืฉื ื”ืงื•ื‘ืฅ ื•ืžืกืคืจ ื”ืฉื•ืจื” ื‘-stderr ืœืœื ื‘ื“ื™ืงืช ื”ืžืฉืชื ื”, ื“ื‘ืจ ืฉื ื•ื— ืœื ื™ืคื•ื™ ื‘ืื’ื™ื ื‘ืคืขื•ืœืช ื‘ื™ื˜ื•ื™ื™ื ืžื•ืชื ื™ื;
  • ื ื•ืกืคื” ืฉื™ื˜ื” " ืœืกื•ื’ื™ ื”ื ืงื•ื“ื” ื”ืฆืคื” f32 ื•-f64ื”ืขืชืงยป ืœื”ืขืชื™ืง ืชื• ืžืžืกืคืจ ืื—ื“ ืœืฉื ื™;
  • ืฉื™ื˜ื” ื ื•ืกืคื”"ืžื›ื™ืœ", ื”ืžืืคืฉืจ ืœืš ืœื‘ื“ื•ืง ืื ื”ืขืจืš ืฉืฆื•ื™ืŸ ื ืžืฆื ื‘ื˜ื•ื•ื—;
  • ืฉื™ื˜ื” ื ื•ืกืคื” Ref:Cell:map_split, ื”ืžืืคืฉืจ ืœืš ืœืฉืงืฃ ื•ืœื”ืคืจื™ื“ ืืช ืขืจืš RefCell ื”ืžื•ืฉืืœ ืขื‘ื•ืจ ืจื›ื™ื‘ื™ื ืฉื•ื ื™ื ืฉืœ ื”ื ืชื•ื ื™ื ื”ืžื•ืฉืืœื™ื;
  • ืฉื™ื˜ื” ื ื•ืกืคื” RefCell::replace_with ื›ื“ื™ ืœื”ื—ืœื™ืฃ ืืช ืขืจืš RefCell ื”ื ื•ื›ื—ื™ ื•ืœื”ื—ื–ื™ืจ ืืช ื”ืขืจืš ื”ื™ืฉืŸ ื›ืชื•ืฆืื” ืžื›ืš;
  • ืฉื™ื˜ื” ื ื•ืกืคื” ptr::hash ืœื’ื™ื‘ื•ื‘ ืžืฆื‘ื™ืข ืื• ื”ืคื ื™ื” ืœืคื™ ื›ืชื•ื‘ืช ื‘ืžืงื•ื ื”ืขืจืš ื”ื›ืชื•ื‘ืช;
  • ืฉื™ื˜ื” ื ื•ืกืคื” ืืคืฉืจื•ืช::ื”ื•ืขืชืงื” ื›ื“ื™ ืœื”ืขืชื™ืง ืืช ืชื•ื›ืŸ ื”ืืคืฉืจื•ื™ื•ืช Optionโ€น&Tโ€บ ืื• Optionโ€น&mut Tโ€บ;
  • ื—ืœืง ื—ื“ืฉ ืฉืœ ืžืžืฉืงื™ API ื”ื•ืขื‘ืจ ืœืงื˜ื’ื•ืจื™ื™ืช ื”ื™ืฆื™ื‘ื•ืช, ื›ื•ืœืœ ืฉื™ื˜ื•ืช ืฉื™ื•ืฆื‘ื•
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    ื˜ื•ื•ื—::ืžื›ื™ืœ,
    RangeFrom::contains,
    RangeTo:: ืžื›ื™ืœ,
    RangeInclusive::ืžื›ื™ืœ,
    RangeToInclusive::ืžื›ื™ืœ ื•
    Option::copyd;

  • ื”ืกื™ืžื•ืŸ drop_bounds ื ื•ืกืฃ ืœ-clippy (linter), ื”ืžื•ืคืขืœ ื‘ืขืช ื”ื•ืกืคืช ื›ืจื™ื›ืช "T: Drop" ืœืคื•ื ืงืฆื™ื”;
  • ื”ืžื”ื“ืจ ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืคืœื˜ืคื•ืจืžืช ื™ืขื“ ื—ื“ืฉื”
    wasm32-unknown-wasi (ืžืžืฉืง WASI ืœื”ืฉืชืžืฉ ื‘-WebAssembly ืžื—ื•ืฅ ืœื“ืคื“ืคืŸ);

  • ืขืจื›ืช ื”ื›ืœื™ื Rust ืžื•ืชืืžืช ืœื”ืคืฆื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืกืคืจื™ื™ืช C ื”ืกื˜ื ื“ืจื˜ื™ืช Musl.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”