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

Rust Macros - Bắt đầu với "ty", "item", "ident" và "expr"

0 0 4

Người đăng: RustDEV VietNam

Theo Viblo Asia

Bên cạnh những khả năng về đảm bảo an toàn bộ nhớ, xử lý đồng thời an toàn, tốc độ cao, v.v. thì Rust còn có một vũ khí rất “nguy hiểm” đó là các macro hay tạm dịch là lệnh-bó-sinh-mã. Nếu bạn đã từng dùng macro trong C hay C++ thì lệnh bó sinh mã trong Rust thực sự là một chân trời mới. Thậm chí, bạn còn có thể dùng nó để tạo hẳn một DSL (”Domain Specific Language”).

Các macro trong Rust dựa rất nhiều vào Regular Expression hoặc được viết tắt là Regex hay còn gọi là biểu thức chính quy. Có hai loại macro trong Rust là “declarative macro” và “procedure macro”, hai loại này cơ chế hoạt động khác nhau và tất nhiên sẽ được dùng cho những mục đích và tình huống khác nhau. Cho dù loại nào thì chúng cũng sẽ được phân giải và sinh mã ngay ở những bước đầu tiên trong quá trình biên dịch. Điều này cũng dễ hiểu vì các macro được sử dụng để sinh ra mã nguồn và phải có mã nguồn thì mới biên dịch ra mã máy được.

Trong quá trình phát triển, nếu các lập trình viên muốn xem một macro sẽ sinh ra mã nguồn như thế nào thì có thể sử dụng lệnh cargo expand, chẳng hạn với đoạn mã sau:

fn main() {
println!("Hello RustDEV Vietnam!");
}

khi chúng ta chạy lệnh cargo expand sẽ cho kết quả như sau:

fn main() {
{
::std::io::_print(format_args!("Hello, RustDEV Vietnam!\\n"));
};
}

Hãy cùng RustDEV Vietnam tìm hiểu về macro cũng như cách thức lập trình với macro trong Rust thông qua chuỗi video Rust Macros trên kênh Youtube RustDEV Vietnam.

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 47

- 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 43

- 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 58

- 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 51

- 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 41

- 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 56