Rust 1.35 Програмчлалын хэлний хувилбар

болсон системийн програмчлалын хэлний хувилбар Зэв 1.35, Mozilla төслөөс боловсруулсан. Энэ хэл нь санах ойн аюулгүй байдалд анхаарлаа төвлөрүүлж, санах ойн автомат удирдлагаар хангадаг бөгөөд хог цуглуулагч эсвэл ажиллах цаг ашиглахгүйгээр өндөр даалгаврын параллелизмд хүрэх боломжийг олгодог.

Rust-ийн автомат санах ойн удирдлага нь хөгжүүлэгчийг заагчийг удирдахаас чөлөөлж, санах ойн сул хандалт, хоосон заагчийг задлах, буфер хэтрүүлэх гэх мэт доод түвшний санах ойн ашиглалтаас үүсэх асуудлаас хамгаалдаг. Төслийн хүрээнд номын санг түгээх, угсралтыг баталгаажуулах, хамаарлыг удирдах багц менежерийг боловсруулж байна. Ачааны, програмд ​​шаардлагатай сангуудыг нэг товшилтоор авах боломжийг танд олгоно. Хост номын сангуудад репозиторыг дэмждэг 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::орлуулах одоогийн RefCell утгыг орлуулах ба үр дүнд нь хуучин утгыг буцаах;
  • Нэмсэн арга ptr :: хэш заагч эсвэл лавлагааг хаяглагдсан утгаас илүү хаягаар хэшлэх;
  • Нэмсэн арга Сонголт :: хуулсан Option‹&T› эсвэл Option‹&mut T› сонголтуудын агуулгыг хуулах;
  • API-ийн шинэ хэсгийг тогтворжуулсан аргуудыг багтаасан тогтвортой ангилалд шилжүүлсэн
    f32 :: хуулбарын тэмдэг,
    f64 :: хуулбарын тэмдэг,
    RefCell::орлуулах,
    RefCell::map_split,
    ptr :: хэш,
    Хүрээ :: агуулсан,
    RangeFrom:: агуулсан,
    RangeTo:: агуулсан,
    RangeInclusive:: агуулсан,
    RangeToInclusive::-д болон
    Сонголт::хуулсан;

  • Функцид "T: Drop" холбоосыг нэмэх үед идэвхждэг clippy (linter)-д drop_bounds чек нэмсэн;
  • Хөрвүүлэгч нь шинэ зорилтот платформын дэмжлэгийг нэмсэн
    wasm32-үл мэдэгдэх-wasi (интерфэйс WASI WebAssembly-г хөтөчөөс гадуур ашиглах);

  • Rust хэрэгслийн иж бүрдэл нь стандарт C номын сангийн Musl дээр суурилсан түгээлтэд зориулагдсан.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх