แž€แŸ’แžšแžปแž˜แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž˜แžถแž“แž€แžถแžšแžšแŸ†แž—แžพแž”แž€แŸ’แž“แžปแž„แž€แžถแžšแžŽแŸ‚แž“แžถแŸ† Rust 1.36!

แžแžพแž˜แžถแž“แžขแŸ’แžœแžธแžแŸ’แž˜แžธแž“แŸ…แž€แŸ’แž“แžปแž„ Rust 1.36?
แž›แž€แŸ’แžแžŽแŸˆโ€‹แžขแž“แžถแž‚แžโ€‹แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž’แŸ’แžœแžพโ€‹แžฑแŸ’แž™โ€‹แž˜แžถแž“โ€‹แž›แŸ†แž“แžนแž„ แž–แžธโ€‹แž›แž€แŸ’แžแžŽแŸˆโ€‹แžแŸ’แž˜แžธโ€‹แž˜แžฝแž™แŸ– crate alloc, MaybeUninit, NLL แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Rust 2015แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแžแŸ’แž˜แžธแž“แŸƒ HashMap แž“แžทแž„แž‘แž„แŸ‹แžแŸ’แž˜แžธ -offline แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŠแžนแž€แž‘แŸ†แž“แžทแž‰แŸ”


แž แžพแž™แžฅแžกแžผแžœแž“แŸแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„แž›แž˜แŸ’แžขแžทแžแž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แž:

  • แž‘แžธแž”แŸ†แž•แžปแžแž“แŸ…แž€แŸ’แž“แžปแž„ Rust 1.36 แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž– แž›แž€แŸ’แžแžŽแŸˆแžขแž“แžถแž‚แžแŸ”
  • แž”แŸ‚แž„แž…แŸ‚แž€แž’แžปแž„แŸ”
    แž‚แžทแžแžแŸ’แžšแžนแž˜ Rust 1.36 แž•แŸ’แž“แŸ‚แž€แž“แŸƒ std แžŠแŸ‚แž›แž–แžนแž„แž•แŸ’แžขแŸ‚แž€แž›แžพแžขแŸ’แž“แž€แž”แŸ‚แž„แž…แŸ‚แž€แžŸแž€แž› (แžŠแžผแž…แž‡แžถ Vec) แž‚แžบแžŸแŸ’แžแžทแžแž“แŸ…แž€แŸ’แž“แžปแž„แž”แŸ’แžšแžขแž”แŸ‹แž”แŸ‚แž„แž…แŸ‚แž€แŸ” แžฅแžกแžผแžœแž“แŸแŸ‡ std แž“แžนแž„แž“แžถแŸ†แž…แŸแž‰แž•แŸ’แž“แŸ‚แž€แž‘แžถแŸ†แž„แž“แŸแŸ‡แžกแžพแž„แžœแžทแž‰แŸ” แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแžขแŸ†แž–แžธแžšแžฟแž„แž“แŸแŸ‡.
  • แž”แŸ’แžšแž แŸ‚แž›แž‡แžถUninit แž‡แŸ†แž“แžฝแžŸแžฑแŸ’แž™ mem::uninitialized แŸ”
    แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž˜แžปแž“แž“แŸแŸ‡ mem::unitialized แž”แžถแž“แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แžšแŸ†แž›แž„แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™แž€แžถแžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ‚แž„แž…แŸ‚แž€แžขแžถแžšแŸแžแŸ’แž‡แžทแž› แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžปแžแž„แžถแžšแž“แŸแŸ‡แž‚แžบแž˜แžถแž“แž‚แŸ’แžšแŸ„แŸ‡แžแŸ’แž“แžถแž€แŸ‹แžŽแžถแžŸแŸ‹ (แž–แŸแžแŸŒแž˜แžถแž“แž”แž“แŸ’แžแŸ‚แž˜) แžŠแžผแž…แŸ’แž“แŸแŸ‡แž”แŸ’แžšแž—แŸแž‘ MaybeUninit แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžฑแŸ’แž™แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž– แžŠแŸ‚แž›แž˜แžถแž“แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แž‡แžถแž„แŸ”
    แž‡แžถแž€แžถแžšแž”แŸ’แžšแžŸแžพแžšแžŽแžถแžŸแŸ‹ แž…แžถแž”แŸ‹แžแžถแŸ†แž„แž–แžธ MaybeUninit แž‚แžบแž‡แžถแž‡แž˜แŸ’แžšแžพแžŸแžŠแŸ‚แž›แž˜แžถแž“แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แž‡แžถแž„แž˜แžปแž“ แžŠแŸ„แž™แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž‡แžถแž˜แžฝแž™ Rust 1.38 แž“แŸ„แŸ‡ mem::uninitialized แž“แžนแž„แž€แŸ’แž›แžถแž™แž‡แžถแž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แž˜แžทแž“แž‚แžถแŸ†แž‘แŸ’แžšแŸ”
    แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แžŸแŸ’แžœแŸ‚แž„แž™แž›แŸ‹แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธแž€แžถแžšแž…แž„แž…แžถแŸ†แžŠแŸ‚แž›แž˜แžทแž“แž‘แžถแž“แŸ‹แž”แž„แŸ’แž€แžพแž แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แž”แŸ’แž›แž€แŸ‹แž“แŸแŸ‡แžŠแŸ„แž™ Alexis Beingessner แŸ”
  • NLL แžŸแž˜แŸ’แžšแžถแž”แŸ‹ Rust 2015 แŸ”
    แž“แŸ…แž€แŸ’แž“แžปแž„แžŸแŸแž…แž€แŸ’แžแžธแž”แŸ’แžšแž€แžถแžŸ แž…แŸ’แžšแŸ‚แŸ‡ แŸก แžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž”แžถแž“แž”แŸ’แžšแžถแž”แŸ‹แž™แžพแž„แžขแŸ†แž–แžธ NLL (Non-Lexical Lifetime) แžŠแŸ‚แž›แž‡แžถแž€แžถแžšแž€แŸ‚แž›แž˜แŸ’แžขแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แžถแžŸแžถแžŠแŸ‚แž›แž’แŸ’แžœแžพแžฑแŸ’แž™แžขแŸ’แž“แž€แžแŸ’แž…แžธแž”แŸ’แžšแžถแž€แŸ‹แž€แžถแž“แŸ‹แžแŸ‚แž†แŸ’แž›แžถแžแžœแŸƒ แž“แžทแž„แž„แžถแž™แžŸแŸ’แžšแžฝแž›แž”แŸ’แžšแžพแž‡แžถแž„แž˜แžปแž“แŸ” แžงแž‘แžถแž แžšแžŽแŸแŸ–
    fn แž˜แŸ () {
    แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™ mut x = 5;
    แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™ y = &x;
    แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™ z = &mut x; // แžœแžถแž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแž‰แŸ’แž‰แžถแžแž˜แžปแž“ 1.31.0 แŸ”
    }

    แž“แŸ…แž€แŸ’แž“แžปแž„ 1.31.0 NLL แž”แžถแž“แž’แŸ’แžœแžพแž€แžถแžšแžแŸ‚แž“แŸ…แž€แŸ’แž“แžปแž„ Rust 2018 แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡ แžŠแŸ„แž™แž˜แžถแž“แž€แžถแžšแžŸแž“แŸ’แž™แžถแžแžถแžขแŸ’แž“แž€แžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž“แžนแž„แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž“แŸ…แž€แŸ’แž“แžปแž„ Rust 2015แŸ”
    แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แžŠแžนแž„แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธ NLL แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž“แŸ…แž€แŸ’แž“แžปแž„แž“แŸแŸ‡แŸ” แž’แžถแžแžปแž”แŸ’แž›แžปแž€ (Felix Klocks) แŸ”

  • แž‘แž„แŸ‹แž‡แžถแžแžทแžแŸ’แž˜แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‘แŸ†แž“แžทแž‰แž‚แžบ โ€” แž“แŸ…แž€แŸ’แžšแŸ…แž”แžŽแŸ’แžแžถแž‰แŸ”
    Rust 1.36 แž”แžถแž“แž’แŸ’แžœแžพแžฑแŸ’แž™แž‘แž„แŸ‹แž‡แžถแžแžทแžแŸ’แž˜แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹ Cargo แž˜แžถแž“แžŸแŸ’แžแŸแžšแž—แžถแž–แŸ” แž‘แž„แŸ‹ --offline แž”แŸ’แžšแžถแž”แŸ‹ Cargo แžฑแŸ’แž™แž”แŸ’แžšแžพแž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แž“แŸ…แž€แŸ’แž“แžปแž„แžƒแŸ’แž›แžถแŸ†แž„แžŸแž˜แŸ’แž„แžถแžแŸ‹ แžŠแžผแž…แŸ’แž“แŸแŸ‡แž–แžฝแž€แž‚แŸแžขแžถแž…แž”แŸ’แžšแžพแž€แŸ’แžšแŸ…แž”แžŽแŸ’แžแžถแž‰แž“แŸ…แž–แŸแž›แž€แŸ’แžšแŸ„แž™แŸ” แž“แŸ…แž–แŸแž›แžŠแŸ‚แž›แž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แž…แžถแŸ†แž”แžถแž…แŸ‹แž˜แžทแž“แžขแžถแž…แž”แŸ’แžšแžพแž”แžถแž“แž€แŸ’แžšแŸ…แž”แžŽแŸ’แžแžถแž‰ แž แžพแž™แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸŠแžธแž“แž’แžบแžŽแžทแžแž“แŸ…แžแŸ‚แžแŸ’แžšแžผแžœแž€แžถแžš แž“แŸ„แŸ‡ Cargo แž“แžนแž„แžแŸ’แžšแžกแž”แŸ‹แž€แŸ†แž แžปแžŸแž˜แžฝแž™แŸ” แžŠแžพแž˜แŸ’แž”แžธแž‘แžถแž‰แž™แž€แž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แž‡แžถแž˜แžปแž“ แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ cargo fetch แžŠแŸ‚แž›แž“แžนแž„แž‘แžถแž‰แž™แž€แž—แžถแž–แžขแžถแžŸแŸ’แžšแŸแž™แž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ”
  • แžœแžถแž‚แžบแž‡แžถแž€แžถแžš แžขแŸ’แž“แž€แžขแžถแž…แžขแžถแž“แž‘แžทแžŠแŸ’แž‹แž—แžถแž–แž›แž˜แŸ’แžขแžทแžแž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแž“แŸƒแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแŸ”

แž€แŸแž˜แžถแž“แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž“แŸ…แž€แŸ’แž“แžปแž„แž”แžŽแŸ’แžŽแžถแž›แŸแž™แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšแž•แž„แžŠแŸ‚แžšแŸ–

แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž•แŸ’แžŸแŸแž„แž‘แŸ€แž แž…แŸ’แžšแŸ‚แŸ‡, แž‘แžนแž€แžขแžถแž€แžถแžŸ ะธ Clippy แŸ”.

แž”แŸ’แžšแž—แž–: linux.org.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹