- vừa được xem lúc

Phân tích chi tiết bản cập nhật Rust 1.88.0: Let Chains dễ dàng và Tự động dọn dẹp bộ nhớ đệm

0 0 3

Người đăng: ServBay

Theo Viblo Asia

Gần đây, phiên bản ổn định của Rust 1.88.0 đã được phát hành, mang đến một số cập nhật rất thiết thực.

Trước khi đi sâu vào các tính năng mới, hãy nói về cách nâng cấp. Mở ServBay, tìm Rust trong mục "Packages" (Gói) và nhấp vào nút nâng cấp màu cam. Điều này giúp bạn tiết kiệm công sức gõ lệnh và xử lý các vấn đề về môi trường. Nếu bạn muốn đơn giản hóa quá trình này, bạn có thể thử dùng ServBay.

Được rồi, hãy cùng xem có gì mới trong Rust 1.88.0.

Các điểm nổi bật của tính năng mới

Let Chains: Giúp mã điều kiện gọn gàng hơn

Nếu bạn đã từng viết mã Rust, có lẽ bạn đã gặp phải vấn đề với các câu lệnh if let lồng nhau sâu. Để trích xuất một giá trị từ một enum hoặc struct lồng nhau, mã sẽ trở nên nhiều lớp và khó đọc.

Trước đây, chúng ta có thể đã viết như thế này:

// Cách viết trước đây, lồng nhau sâu
if let Channel::Stable(v) = release_info() { if let Semver { major, minor, .. } = v { if major == 1 && minor == 88 { println!("Cần nhiều lớp để hoàn thành việc kiểm tra..."); } }
}

Giờ đây, let chains, được giới thiệu trong phiên bản 1.88.0, đã giải quyết vấn đề này. Chúng cho phép bạn xâu chuỗi nhiều ràng buộc let và điều kiện boolean lại với nhau trong một câu lệnh if hoặc while bằng cách sử dụng &&.

Bây giờ, bạn có thể viết như thế này:

// Sử dụng let chains, mã phẳng hơn nhiều
if let Channel::Stable(v) = release_info() && let Semver { major, minor, .. } = v && major == 1 && minor == 88
{ println!("let_chains giúp logic rõ ràng hơn nhiều.");
}

Như bạn có thể thấy, logic của mã trở nên tuyến tính hơn và dễ đọc hơn rất nhiều.

Điều đáng chú ý là tính năng let chains yêu cầu Rust 2024 Edition, vì vậy nếu bạn muốn sử dụng nó, hãy nhớ cập nhật phiên bản (edition) của bạn trong Cargo.toml.

Tự động dọn dẹp bộ nhớ đệm Cargo: Giải quyết vấn đề dung lượng ổ đĩa

Bất kỳ ai đã sử dụng Rust một thời gian đều biết rằng thư mục ~/.cargo có thể trở nên rất lớn vì nó lưu trữ tất cả các dependency đã tải xuống. Theo thời gian, nó có thể chiếm hàng chục gigabyte dung lượng ổ đĩa, đòi hỏi phải dọn dẹp thủ công.

Phiên bản 1.88.0 cuối cùng đã tích hợp tính năng tự động dọn dẹp bộ nhớ đệm, mà tôi thấy rất hữu ích. Quy tắc dọn dẹp của nó rất đơn giản:

  • Các dependency được tải xuống từ các registry sẽ bị xóa nếu không được truy cập trong 3 tháng.
  • Các dependency cục bộ (như dependency từ Git) sẽ bị xóa nếu không được truy cập trong 1 tháng.

Với tính năng này, chúng ta không còn phải lo lắng về việc bộ nhớ đệm của Cargo chiếm quá nhiều dung lượng ổ đĩa.

Hàm trần (Naked Functions)

Đối với các nhà phát triển làm việc với các tác vụ cấp thấp, như viết nhân hệ điều hành hoặc các chương trình nhúng, hàm trần (#[naked]) mới được thêm vào là một tùy chọn mới hữu ích. Chúng cho phép các nhà phát triển viết một hàm mà phần thân hoàn toàn được cấu thành từ hợp ngữ nội tuyến (inline assembly), vì trình biên dịch sẽ không thêm bất kỳ mã hợp ngữ bổ sung nào (như phần mở đầu và kết thúc hàm). Điều này cung cấp toàn quyền kiểm soát việc triển khai hàm, một điều cực kỳ quan trọng trong một số tình huống nhất định.

Các cập nhật khác

Ngoài ra còn có một số cập nhật nhỏ nhưng hữu ích, chẳng hạn như:

  • Cấu hình Boolean: Bây giờ bạn có thể viết trực tiếp cfg(true) hoặc cfg(false) trong các thuộc tính cfg, trực quan hơn so với cách viết cfg(all()) trước đây.
  • Ổn định hóa API: Một loạt API, bao gồm HashMap::extract_ifCell::update, đã được ổn định hóa và sẵn sàng để sử dụng trong các dự án thực tế của bạn.

Cách nâng cấp lên Rust 1.88.0 với ServBay

Tôi đã đề cập trước đó rằng tôi sử dụng ServBay để quản lý các phiên bản. Dưới đây là các bước cụ thể, thực sự rất đơn giản:

  1. Mở ứng dụng ServBay.
  2. Tìm "Packages" (Gói) ở thanh bên trái.
  3. Bạn sẽ thấy Rust trong danh sách các ngôn ngữ. Nhấp vào nút nâng cấp màu cam bên cạnh nó.

Mô tả hình ảnh

Nếu bạn chưa cài đặt ServBay và muốn dùng thử, bạn có thể tải xuống từ trang web chính thức (https://www.servbay.com). Sau khi tải xuống, hãy vào mục "Packages" ở thanh bên trái, tìm Rust và nhấp vào nút tải xuống màu xanh lá cây để cài đặt nó.

Mô tả hình ảnh

Toàn bộ quá trình được quản lý thông qua giao diện đồ họa, không cần dùng đến dòng lệnh. Những lý do chính tôi thích sử dụng ServBay là:

  • Quản lý bằng giao diện đồ họa (GUI): Nó loại bỏ sự phiền phức khi phải nhớ và gõ lệnh, điều này đặc biệt tiện lợi khi bạn chuyển đổi giữa nhiều ngôn ngữ (như Python và Go) và muốn có một giao diện quản lý thống nhất.
  • Cô lập môi trường: Các phiên bản khác nhau của công cụ và ngôn ngữ có thể cùng tồn tại mà không ảnh hưởng lẫn nhau, giúp dễ dàng cấu hình môi trường cho các dự án khác nhau.

Tóm tắt

Nhìn chung, Rust 1.88.0 là một bản phát hành rất thiết thực. Các tính năng như let chains và tự động dọn dẹp bộ nhớ đệm Cargo giải quyết trực tiếp các vấn đề thường gặp trong quá trình phát triển hàng ngày, cải thiện đáng kể trải nghiệm của nhà phát triển.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chuyện cái comment

Chuyện cái comment. Chuyện rằng, có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm.

0 0 39

- vừa được xem lúc

Đừng đánh nhau với borrow checker

Đừng đánh nhau với borrow checker. TL;DR: Đừng bao giờ đánh nhau với borrow checker, nó được sinh ra để bạn phải phục tùng nó .

0 0 35

- vừa được xem lúc

Chuyện biểu diễn ma trận trên máy tính

Chuyện biểu diễn ma trận trên máy tính. Cách đây mấy hôm mình có share cái screenshot trên Facebook, khoe linh tinh vụ mình đang viết lại cái CHIP-8 emulator bằng Rust.

0 0 49

- vừa được xem lúc

Rust và Lập trình Web

Rust và Lập trình Web. Bài viết được dịch lại từ bản gốc "Rust for the Web" đăng tại phiên bản blog tiếng Anh của mình.

0 0 43

- vừa được xem lúc

Viết ứng dụng đọc tin HackerNews bằng Rust

Viết ứng dụng đọc tin HackerNews bằng Rust. Dạo này mình toàn viết bài linh tinh, lâu rồi chưa thấy viết bài kĩ thuật nào mới nên hôm nay mình viết trở lại, mất công các bạn lại bảo mình không biết co

0 0 30

- vừa được xem lúc

Cài đặt Rust trên Arch Linux

Cài đặt Rust trên Arch Linux. Việc cài đặt Rust trên môi trường Arch Linux khá là đơn giản.

0 0 50