Về rustvn.com
Ngôn ngữ lập trình Rust
Lời tựa
Giới thiệu
Thuật ngữ
1.
Bắt đầu
1.1.
Cài đặt
1.2.
Chương trình đầu tiên 'Hello, World!'
1.3.
Cargo
2.
Lập trình một trò chơi đoán số
3.
Nguyên lý chung của ngôn ngữ Rust
3.1.
Biến và Sự Biến đổi (Mutability)
3.2.
Kiểu dữ liệu
3.3.
Hàm
3.4.
Chú thích
3.5.
Luồng điều khiển
4.
Nguyên lý quyền sở hữu (ownership)
4.1.
Quyền sở hữu là gì?
4.2.
Tham chiếu và nguyên lý borrow
4.3.
Kiểu dữ liệu slice
5.
Kiểu Struct và lưu trữ dữ liệu
5.1.
Định nghĩa và khởi tạo Struct
5.2.
Một ví dụ sử dụng Struct
5.3.
Phương thức
6.
Kiểu Enums and Cú pháp Matching trong Rust
6.1.
Định nghĩa kiểu Enum
6.2.
Từ khoá match
6.3.
Luồng điều khiển với if let
7.
Quản lý Dự Án Lớn với packages (gói), crates (mức crates) và modules (mức module)
7.1.
Packages và Crates
7.2.
Định nghĩa module với chính sách riêng tư (privacy)
7.3.
Truy xuất tới item trong module (Module Tree)
7.4.
Định nghĩa phạm vi sử dụng cho đường dẫn với từ khoá use
7.5.
Chia module thành nhiều file khác nhau
8.
Kiểu dữ liệu Collections Phổ biến
8.1.
Lưu trữ danh sách giá trị với Vector
8.2.
Lưu trữ UTF-8 Encoded Text với kiểu Strings
8.3.
Lưu trữ cặp keys/value sử dụng Hash Maps
9.
Xử lý lỗi
9.1.
Lỗi không thể phục với panic
9.2.
Lỗi có thể khôi phục với Result
9.3.
Khi nào panic! và khi nào không nên panic!
10.
Kiểu tổng quát (Generic Types), Traits, và Lifetimes (Vòng đời)
10.1.
Kiểu dữ liệu Generic
10.2.
Traits: Định nghĩa đặc tính chung (shared behavior)
10.3.
Xác thực tham chiếu sử dụng Lifetimes
11.
Viết một test case
11.1.
Cách để viết một test
11.2.
Điều khiển cách hoạt động của một Test
11.3.
Chiến thuật Test (Test Organization)
12.
Dự án I/O: Xây dựng một chương trình dòng lệnh (Command Line)
12.1.
Chấp nhận tham số dòng lệnh
12.2.
Đọc một file
12.3.
Sửa đổi code để cái thiện tính module hoá và xử lý lỗi
12.4.
Phát triển tính năng của thư viện với hướng phát triển thử nghiệm
12.5.
Làm việc với biến môi trường
12.6.
Viết thông điệp lỗi và chuyển tiếp tới đầu ra chuẩn của lỗi (Standard Error Output)
13.
Tính năng ngôn ngữ lập trình Hàm: Iterators và Closures
13.1.
Closures: Hàm vô danh và có thể lấy thông tin ngữ cảnh
13.2.
Xử lý chuỗi đối tượng nhờ Iterators (Đối tượng Lặp)
13.3.
Cải thiện Dự án I/O
13.4.
So sánh hiệu năng: Vòng lặp theo chỉ số với lặp dạng Iterators
14.
Nhiều hơn về Cargo and trang Crates.io
14.1.
Cấu hình tuỳ biến build với tham số cho release
14.2.
Đưa một crate lên trang Crates.io
14.3.
Dự án với Cargo (Cargo Workspaces)
14.4.
Cài đặt chương trình từ Crates.io với cargo install
14.5.
Mở rộng Cargo với nhiều lệnh tuỳ biến
15.
Con trỏ thông mình (Smart Pointers)
15.1.
Sử dụng Box<T>
15.2.
Con trỏ thông minh như tham chiếu + Deref Trait
15.3.
Chạy chương trình với Drop Trait như bộ dọn rác (cleanup)
15.4.
Rc<T>, Con trỏ thông minh với bộ đếm số lượng tham chiếu (Reference Counted)
15.5.
RefCell<T> và Thiết kế Interior Mutability Pattern(1)
15.6.
Vòng đời của tham chiếu có thể rò rỉ bộ nhớ
16.
Lập trình song song
16.1.
Sử dụng Threads(luồng) cho lập trình đa luồng
16.2.
Trao đổi dữ liệu giữa các threads
16.3.
Chia sẻ trạng thái
16.4.
Mở rộng với Đặc tính Sync và Send
17.
Lập trình hướng đối tượng trong Rust
17.1.
Đặc tính của ngôn ngữ hướng đối tượng
17.2.
Sử dụng Đối tượng Trait (Objects Traits)
17.3.
Thực hiện design pattern hướng đối tượng
18.
Patterns và Matching
18.1.
Các nơi có thể áp dụng mẫu match
18.2.
Refutability: Phần Refutability trong match
18.3.
Cú pháp match
19.
Tính năng nâng cao
19.1.
Unsafe Rust
19.2.
Advanced Traits
19.3.
Advanced Types
19.4.
Advanced Functions và Closures
19.5.
Macros
20.
Final Project: Building a Multithreaded Web Server
20.1.
Building a Single-Threaded Web Server
20.2.
Turning Our Single-Threaded Server into a Multithreaded Server
20.3.
Graceful Shutdown and Cleanup
21.
Phụ Lục
21.1.
A - Từ khoá
21.2.
B - Toán tử và Ký Hiệu
21.3.
C - Traits Có thể kế thừa(Derivable Traits)
21.4.
D - Công cụ phát triển hữu dụng
21.5.
E - Phiên bản Rust
21.6.
F - Dịch sách Translations of the Book
21.7.
G - Cách Rust được tạo và “Nightly Rust” là gì?
Light
Rust
Coal
Navy
Ayu
Ngôn ngữ lập trình Rust
Thuật ngữ
Chương này không có trong Rust book. Mình tạo ra để mô tả các thuật ngữ để tiện tra cứu: