ทีมพัฒนารู้สึกตื่นเต้นที่จะเปิดตัว Rust 1.36!
มีอะไรใหม่ใน Rust 1.36?
และตอนนี้ในรายละเอียดเพิ่มเติม:
- ในที่สุดใน Rust 1.36 มีเสถียรภาพ ลักษณะอนาคต
- ลังจัดสรร
ตั้งแต่ Rust 1.36 บางส่วนของ std ที่ขึ้นอยู่กับตัวจัดสรรส่วนกลาง (เช่น Vec) จะอยู่ในลังการจัดสรร ตอนนี้ std จะส่งออกชิ้นส่วนเหล่านี้อีกครั้ง เพิ่มเติมเกี่ยวกับเรื่องนี้. - MaybeUninit แทนที่จะเป็น mem::uninitialized
ในรีลีสก่อนหน้านี้ mem::uninitialized อนุญาตให้คุณข้ามการตรวจสอบการเริ่มต้น ซึ่งใช้สำหรับการจัดสรรอาร์เรย์แบบขี้เกียจ แต่ฟังก์ชันนี้ค่อนข้างอันตราย (ขึ้น) ดังนั้นประเภท MaybeUninit จึงเสถียร ซึ่งปลอดภัยกว่า
เนื่องจาก MaybeUninit เป็นทางเลือกที่ปลอดภัยกว่า เริ่มต้นด้วย Rust 1.38 ดังนั้น mem::uninitialized จะเป็นฟังก์ชันที่เลิกใช้แล้ว
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับหน่วยความจำที่ไม่ได้เตรียมใช้งาน คุณสามารถอ่านบล็อกโพสต์นี้โดย Alexis Beingessner - NLL สำหรับสนิม 2015
ในการประกาศ สนิม 1.31.0 นักพัฒนาบอกเราเกี่ยวกับ NLL (Non-Lexical Lifetime) ซึ่งเป็นการปรับปรุงภาษาที่ทำให้ตัวตรวจสอบการยืมฉลาดขึ้นและใช้งานง่ายยิ่งขึ้น ตัวอย่าง:
fnmain() {
ให้ mut x = 5;
ให้ y = &x;
ให้ z = &mut x; // สิ่งนี้ไม่ได้รับอนุญาตก่อน 1.31.0
}ใน 1.31.0 NLL ใช้งานได้เฉพาะใน Rust 2018 โดยสัญญาว่าจะเพิ่มการรองรับใน Rust 2015
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ NLL คุณสามารถอ่านเพิ่มเติมได้ในสิ่งนี้ รายการบล็อก (เฟลิกซ์ คล็อคส์). - ธงใหม่สำหรับ Cargo คือ —ออฟไลน์
Rust 1.36 ได้ปรับธงใหม่สำหรับ Cargo ให้เสถียรแล้ว ธง --offline บอกให้ Cargo ใช้การพึ่งพาแคชในเครื่องเพื่อให้สามารถใช้งานแบบออฟไลน์ได้ในภายหลัง เมื่อการพึ่งพาที่จำเป็นไม่พร้อมใช้งานแบบออฟไลน์ และหากยังจำเป็นต้องใช้อินเทอร์เน็ต Cargo จะส่งข้อผิดพลาดกลับคืนมา หากต้องการดาวน์โหลดการขึ้นต่อกันล่วงหน้า คุณสามารถใช้คำสั่ง cargo fetch ซึ่งจะดาวน์โหลดการขึ้นต่อกันทั้งหมด - ที่นี่ คุณสามารถอ่านภาพรวมโดยละเอียดเพิ่มเติมของการเปลี่ยนแปลงได้
นอกจากนี้ยังมีการเปลี่ยนแปลงในไลบรารีมาตรฐาน:
- แมโคร dbg!() สามารถรองรับอาร์กิวเมนต์ได้หลายตัวแล้ว
- ขณะนี้ API หลายตัวถูกทำเครื่องหมายว่า const:
- API ใหม่ที่ได้รับความเสถียร:
- การเปลี่ยนแปลงอื่นๆ ในไลบรารีมาตรฐานสามารถพบได้ที่นี่ ที่นี่.
การเปลี่ยนแปลงอื่นๆ สนิม, สินค้า и Clippy.
ที่มา: linux.org.ru