แนะนำ Android สนิม

แพลตฟอร์ม Android ให้การสนับสนุนการพัฒนาส่วนประกอบระบบปฏิบัติการดั้งเดิมใน Rust ซึ่งเป็นภาษาการเขียนโปรแกรมระบบสมัยใหม่ที่รับประกันความปลอดภัยของหน่วยความจำด้วยประสิทธิภาพเทียบเท่ากับ C/C++ Rust ใช้การผสมผสานระหว่างการตรวจสอบเวลาคอมไพล์ที่บังคับใช้อายุการใช้งานและความเป็นเจ้าของอ็อบเจ็กต์ และการตรวจสอบรันไทม์เพื่อให้แน่ใจว่ามีการเข้าถึงหน่วยความจำที่ถูกต้อง ดังนั้นจึงไม่จำเป็นต้องใช้ตัวรวบรวมขยะ

Rust นำเสนอฟีเจอร์ภาษาสมัยใหม่มากมายซึ่งช่วยให้นักพัฒนามีประสิทธิภาพและมั่นใจในโค้ดมากขึ้น:

  • การเขียนโปรแกรมพร้อมกันอย่างปลอดภัย - ความง่ายดายในการช่วยให้ผู้ใช้เขียนโค้ดที่มีประสิทธิภาพและปลอดภัยสำหรับเธรดทำให้เกิดสโลแกน Fearless Concurrency ของ Rust
  • ระบบประเภทที่แสดงออก - สนิมช่วยป้องกันข้อบกพร่องในการเขียนโปรแกรมเชิงลอจิคัลโดยอนุญาตให้ใช้ประเภทที่แสดงออกได้สูง (เช่น Newtype wrapper และตัวแปร enum พร้อมเนื้อหา)
  • การตรวจสอบเวลาคอมไพล์ที่แข็งแกร่งยิ่งขึ้น - จุดบกพร่องที่เพิ่มมากขึ้นในเวลาคอมไพล์ช่วยเพิ่มความมั่นใจให้กับนักพัฒนาว่าเมื่อคอมไพล์โค้ดสำเร็จ รหัสจะทำงานได้ตามที่ตั้งใจไว้
  • กรอบการทดสอบในตัว - Rust มอบกรอบการทดสอบในตัวซึ่งสามารถวางการทดสอบหน่วยควบคู่ไปกับการใช้งานที่ทดสอบ ทำให้รวมการทดสอบหน่วยได้ง่ายขึ้น
  • การบังคับใช้การจัดการข้อผิดพลาด - ฟังก์ชันที่มีความล้มเหลวที่สามารถกู้คืนได้สามารถส่งคืน ประเภทผลลัพธ์ ซึ่งจะเป็นตัวแปรที่สำเร็จหรือตัวแปรข้อผิดพลาดก็ได้ คอมไพเลอร์ต้องการให้ผู้เรียกตรวจสอบและจัดการตัวแปรข้อผิดพลาดของ Result enum ที่ส่งคืนจากการเรียกใช้ฟังก์ชัน ซึ่งจะช่วยลดโอกาสที่จะเกิดจุดบกพร่องอันเป็นผลมาจากความล้มเหลวที่ไม่สามารถจัดการได้
  • การเริ่มต้น - Rust กำหนดให้ตัวแปรทุกตัวต้องถูกเตรียมใช้งานให้กับสมาชิกตามกฎหมายประเภทนั้นก่อนใช้งาน เพื่อป้องกันการกำหนดค่าเริ่มต้นโดยไม่ตั้งใจให้เป็นค่าที่ไม่ปลอดภัย
  • การจัดการจำนวนเต็มที่ปลอดภัยยิ่งขึ้น - การแปลงประเภทจำนวนเต็มทั้งหมดเป็นแบบหล่อที่ชัดเจน นักพัฒนาไม่สามารถแคสต์โดยไม่ตั้งใจระหว่างการเรียกใช้ฟังก์ชันเมื่อกำหนดให้กับตัวแปร หรือเมื่อพยายามคำนวณกับประเภทอื่น การตรวจสอบโอเวอร์โฟลว์จะเปิดอยู่ตามค่าเริ่มต้นใน Android สำหรับ Rust ซึ่งกำหนดให้การดำเนินการโอเวอร์โฟลว์มีความชัดเจน

สำหรับข้อมูลเพิ่มเติม โปรดดูชุดโพสต์บล็อกเกี่ยวกับการรองรับ Android Rust: