dpway

The middle way!

[ Rust ]

[Rust][010] mem::take and mem::replace

rust-cheat-sheet

Trong Rust, khi làm việc với enum, chúng ta có thể cần thay đổi một biến thể (variant) sang một biến thể khác mà vẫn giữ lại dữ liệu của một số trường. Một cách tiếp cận phổ biến nhưng không tối ưu là sử dụng .clone(), điều này dẫn đến cấp phát bộ nhớ không cần thiết. Thay vào đó, Rust cung cấp hai hàm hữu ích: mem::takemem::replace, giúp chúng ta thực hiện việc này mà không cần clone.

[Rust][009] Destructors

rust-cheat-sheet

Rust không cung cấp khối finally như trong các ngôn ngữ khác để đảm bảo một đoạn mã luôn được thực thi trước khi thoát khỏi một hàm. Thay vào đó, Rust sử dụng destructor của một đối tượng (Drop trait) để thực thi mã cần thiết trước khi chương trình thoát.

[Rust][008] Collections Are Smart Pointers

rust-cheat-sheet

Trong Rust, collections không chỉ đơn giản là các cấu trúc dữ liệu chứa nhiều phần tử, mà còn hoạt động giống như smart pointers nhờ vào trait Deref. Điều này giúp chúng cung cấp cả quyền sở hữu và quyền mượn dữ liệu một cách linh hoạt.

[Rust][007] Default Trait

rust-cheat-sheet

Trong Rust, nhiều kiểu dữ liệu có constructor riêng, nhưng Rust không thể tổng quát hóa chúng bằng một cơ chế chung. Vì vậy, Default trait ra đời để hỗ trợ việc khởi tạo giá trị mặc định cho các kiểu dữ liệu, đặc biệt hữu ích trong các cấu trúc dữ liệu tổng quát và container như Option::unwrap_or_default().

[Rust][006] Constructor

rust-cheat-sheet

Rust không cung cấp constructors như một thành phần ngôn ngữ, nhưng có một quy ước chung là sử dụng một hàm liên kết (associated function) có tên new để tạo đối tượng.

[Rust][005] Concatenating Strings

rust-cheat-sheet

Trong Rust, có nhiều cách để nối chuỗi, bao gồm sử dụng phương thức push, push_str trên String có thể thay đổi hoặc sử dụng toán tử +. Tuy nhiên, cách tiếp cận linh hoạt và dễ đọc nhất là sử dụng macro format!, đặc biệt khi cần trộn chuỗi ký tự cố định và biến đổi.

[Rust][004] Arguments

rust-cheat-sheet

Trong Rust, hệ thống mượn dữ liệu (borrowing) đóng vai trò quan trọng trong việc quản lý bộ nhớ an toàn và hiệu quả. Khi truyền dữ liệu vào hàm, việc sử dụng borrow type (&T hoặc &mut T) giúp tối ưu hiệu suất, tránh sao chép không cần thiết và đảm bảo tính toàn vẹn của dữ liệu.

[Rust][003] Foundations

rust-cheat-sheet

Chương Foundations đi sâu vào từng khái niệm, cơ chế và triết lý thiết kế của Rust

[Rust][002] SQL Database

sql-db

We will explore how to use two powerful libraries in Rust for building safe and flexible SQL queries for your application: SQLx and SeaQuery. Each of these libraries plays a specific role in interacting with databases, from query construction to result mapping and filtering.

[Rust][001] Rust Cheat Sheet

rust-cheat-sheet

A cheat sheet for the Rust programming language is a compact reference guide that provides quick access to essential syntax, concepts, and best practices for Rust developers. Rust is a systems programming language known for its focus on safety, concurrency, and performance. It features a unique ownership model that helps prevent memory leaks and data races, making it particularly suitable for concurrent programming.