Bản phát hành ngôn ngữ lập trình Rust 1.43

được phát hành phát hành ngôn ngữ lập trình hệ thống Rỉ 1.43được thành lập bởi dự án Mozilla. Ngôn ngữ này tập trung vào quản lý bộ nhớ an toàn, cung cấp khả năng quản lý bộ nhớ tự động và cung cấp các phương tiện để đạt được tính song song công việc cao đồng thời tránh sử dụng trình thu gom rác và thời gian chạy.

Tính năng quản lý bộ nhớ tự động của Rust giải phóng nhà phát triển khỏi thao tác con trỏ và bảo vệ khỏi các vấn đề phát sinh từ thao tác bộ nhớ cấp thấp, chẳng hạn như truy cập bộ nhớ sau khi rảnh, hủy đăng ký con trỏ null, lỗi tràn bộ đệm, v.v. Một trình quản lý gói đang được phát triển để phân phối các thư viện, đảm bảo việc lắp ráp và quản lý các phần phụ thuộc của dự án. Cargo, cho phép bạn lấy các thư viện bạn cần cho chương trình chỉ bằng một cú nhấp chuột. Một kho lưu trữ được hỗ trợ cho các thư viện lưu trữ thùng.io.

Chính đổi mới:

  • Macro cung cấp khả năng sử dụng các đoạn phần tử để biến chúng thành mã cho các đặc điểm (đặc điểm), cách triển khai (ngụ ý) hoặc các khối bên ngoài. Ví dụ:

    macro_rules! mac_trait {
    ($i:mục) => {
    đặc điểm T { $i }
    }
    }
    mac_đặc điểm! {
    fn foo() {}
    }

    Sẽ dẫn đến thế hệ:

    đặc điểm T {
    fn foo() {}
    }

  • Cải thiện khả năng phát hiện kiểu nguyên thủy, tham chiếu và hoạt động nhị phân.
    Ví dụ: đoạn mã sau, trước đây gây ra lỗi, giờ đây sẽ có thể biên dịch (Rust hiện xác định chính xác rằng 0.0 và &0.0 phải thuộc loại f32):

    đặt n: f32 = 0.0 + &0.0;

  • Một biến môi trường mới CARGO_BIN_EXE_{name} đã được thêm vào Cargo, biến này được đặt khi xây dựng các thử nghiệm tích hợp và cho phép bạn xác định đường dẫn đầy đủ đến tệp thực thi được xác định trong phần “[[bin]]” của gói.
  • Câu lệnh if được phép sử dụng các thuộc tính như "#[cfg()]".
  • Thư viện cung cấp khả năng sử dụng trực tiếp các hằng số liên kết cho các kiểu số nguyên và phân số mà không cần nhập mô-đun. Ví dụ: bạn có thể viết ngay u32::MAX hoặc f32::NAN mà không cần chỉ định trước “use std::u32” và “use std::f32”.
  • Đã thêm một mô-đun mới nguyên thủy, tái xuất các kiểu nguyên thủy của Rust, chẳng hạn như khi bạn cần viết macro và đảm bảo các kiểu đó không bị ẩn.
  • Một phần mới của API đã được chuyển sang danh mục ổn định, bao gồm cả ổn định

    Một lần::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 và
    iter::once_with.

Nguồn: opennet.ru

Thêm một lời nhận xét