[KIẾM LAI] Chương 3. Nhật Xuất

Tác giả: Phong Hỏa Hí Chư Hầu

Thị trấn nhỏ không lớn không nhỏ, hơn sáu trăm gia đình. Nhà nghèo trong trấn, Trần Bình An nhận ra phần lớn. Về phần gia đình giàu có, cánh cửa cao, lớp người quê mùa như thiếu niên chỉ đi ngang qua chứ chưa từng đi vào, ngõ nhà giàu, Trần Bình An thậm chí đều không có đặt chân qua, đường đi bên kia được lát bằng từng khối đá xanh lớn. Trời mưa xuống, tuyệt sẽ không một cước đạp xuống, bùn văng khắp nơi. Những khối đá xanh kia, trải qua trăm ngàn năm người xe giẫm đạ, sớm đã phẳng phiu bóng loáng trong như gương.

[Đọc tiếp]

[KIẾM LAI] Chương 2. Khai Môn

Tác giả: Phong Hỏa Hí Chư Hầu

Trời hửng sáng, gà chưa gáy, Trần Bình An đã rời giường, tấm đệm đơn bạc thật sự không giữ được hơi ấm, hơn nữa tại thời điểm làm học đồ nung sứ, cũng đã dưỡng thành thói quen dậy sớm. Trần Bình An mở cửa phòng, đi ra tiểu viện bùn đất, hít thở sâu một hơi, duỗi lưng một cái, đi ra sân nhỏ, quay đầu chứng kiến một thân ảnh nhỏ bé yếu ớt đang khom người, hay tay xách một thùng nước gỗ, dùng bả vai đẩy cửa sân nhà mình, đúng là tỳ nữ của Tống Tập Tân. Nàng hẳn là mới từ giếng thiết tỏa ngõ Hạnh Hoa bên kia múc nước trở về.

[Đọc tiếp]

[KIẾM LAI] Chương 1. Kinh Trập

Tác giả: Phong Hỏa Hí Chư Hầu

Mồng hai tháng hai, Long Sĩ Đầu (Rồng Ngẩng Đầu).

Trong hoàng hôn, trấn nhỏ có một địa phương yên tĩnh gọi là ngõ Nê Bình, có một thiếu niên lẻ loi hiu quạnh, lúc này đang theo tập tục, một tay cầm ngọn nến, một tay cầm cành đào, chiếu rọi xà nhà, vách tường, giường gỗ các chỗ, dùng cành đào gõ gõ đập đập, ý đồ mượn việc này xua đuổi rắn rết các loại, miệng lẩm bẩm câu nói thị trấn nhỏ đời đời truyền lại: Mồng hai tháng hai, chiếu sáng xà nhà, đào đánh bức tường, nhân gian xà trùng không nơi ẩn núp.

[Đọc tiếp]

[Rust Book] 4.1. Tham chiếu và Vay Mượn (References and Borrowing)

References and Borrowing

Vấn đề với đoạn code trong Ví dụ 4-5 là chúng ta phải trả về String cho lời gọi hàm để có thể sử dụng String sau khi gọi calculate_length, bởi vì String đã được move vào calculate_length.

Dưới đây là cách để định nghĩa và sử dụng hàm calculate_length, mà có một tham chiếu tới một đối tượng như một tham số thay vì lấy mất ownership của giá trị đó:

[Đọc tiếp]

[Rust Book] 4.1. Ownership là gì

Ownership là tính năng độc đáo nhất của Rust, nó cho phép Rust đảm bảo an toàn cho bộ nhớ mà không cần garbage collector. Do đó, hiểu về cách hoạt động của ownership trong Rust rất quan trọng. Trong chương này, chúng ta sẽ nói về ownership cũng như nhiều tính năng khác: borrowing, slice và cách Rust loại dữ liệu ra khỏi bộ nhớ.

Ownership là gì?

Tính năng trung tâm của Rust là ownership. Mặc dù bản thân tính năng khá đơn giản để giải thích, nhưng nó có ảnh hưởng rất sâu đến phần còn lại của ngôn ngữ.

Tất cả các chương trình phải quản lý cách chúng sử dụng bộ nhớ máy tính khi chạy. Một vài ngôn ngữ có garbage collection liên tục tìm những phần không dùng bộ nhớ nữa trong khi chương trình chạy; một vài ngôn ngữ khác thì lập trình viên phải tự chỉ ra và làm trống bộ nhớ. Rust sử dụng cách tiếp cận thứ ba: bộ nhớ được quản lý thông qua một hệ thống ownership với một bộ quy tắc cho trình biên dịch kiểm tra khi biên dịch. Không có tính năng nào ownership làm chậm chương trình của bạn khi chạy cả.

[Đọc tiếp]

[Rust Book] 3.5. Luồng điểu khiển

Luồng điểu khiển

Việc quyết định chạy code hay không hay chạy code lặp đi lặp lại dựa vào điều kiện là những block code cơ bản trong hầu hết các ngôn ngữ lập trình. Phổ biến nhất là câu điều kiện if và vòng lặp.

if Expressions

Câu điều kiện if cho phép bạn rẽ nhánh code tùy thuộc theo điều kiện. Bạn đưa ra một điều kiện và sau đó chỉ ra, “Nếu điều kiện này thỏa mãn, chạy block code này. Nếu điện kiện không thỏa mãn, đừng chạy block code này.”

Tạo một project mới tên là branches trong thư mục projects của bạn để tìm hiểu về câu điều kiện. Trong file src/main.rs, nhập như sau:

[Đọc tiếp]

[Rust Book] 3.4. Comment

Comments

Các lập trình viên cố gắng để làm cho code của họ dễ hiểu, nhưng đôi khi phải cần thêm những đoạn giải thích. Trong những trường hợp này, lập trình viên sẽ để lại comment trong source code của họ, thứ mà trình biên dịch sẽ bỏ qua nhưng người đọc source code có thể thấy hữu dụng.

Ví dụ về một comment đơn giản:

// hello, world
[Đọc tiếp]

[Rust Book] 3.3. Hàm

Hàm

Hàm hiện diện ở mọi nơi trong Rust. Bạn đã thấy một trong những hàm quan trọng nhất: hàm main, điểm khởi đầu (entry point) của nhiều chương trình. Bạn cũng đã thấy từ khóa fn, từ khóa cho phép bạn khai báo hàm mới.

Rust code sử dụng snake case cho tên hàm và tên biến. Trong snake case tất cả các ký tự là chữ thường và các từ phân cách bởi dấu gạch dưới. Dưới đây là chương trình có chứa ví dụ về định nghĩa hàm:

[Đọc tiếp]

[Rust Book] 3.2. Kiểu dữ liệu

Kiểu dữ liệu

Mọi giá trị trong Rust đều thuộc về một kiểu dữ liệu cố định, cho Rust biết loại dữ liệu được gán để nó biết cách làm việc với dữ liệu đó. Chúng ta sẽ xem xét hai tập kiểu dữ liệu: vô hướng (scalar) và phức hợp (compound).

Hãy nhớ rằng Rust là một ngôn ngữ có kiểu tĩnh (statically typed), có nghĩa là nó phải biết kiểu của tất cả các biến lúc biên dịch. Trình biên dịch có thể suy luận ra kiểu chúng ta muốn dựa trên giá trị và cách chúng ta dùng nó. Trong trường hợp có thể có nhiều kiểu, ví dụ như khi chúng ta chuyển đổi một String sang một kiểu số bằng parse trong phần [“So sánh số đoán với số bí mật”] (comparing-the-guess-to-the-secret-number) ở Chương 2, chúng ta phải khai báo kiểu, giống như sau:

[Đọc tiếp]

[Rust Book] 3.1. Biến và khả năng thay đổi

Từ khóa

Ngôn ngữ Rust có một bộ các từ khóa (keyword) được dành riêng và chỉ được sử dụng bới ngôn ngữ, giống như trong những ngôn ngữ khác. Hãy luôn nhớ rằng bạn không thể dùng những từ này cho tên biến hay tên hàm. Hầu hết các từ khóa có ý nghĩa đặc biệt, bạn sẽ dùng chúng để làm nhiều loại tác vụ trong chương trình Rust của bạn; một vài từ khóa hiện tại chưa có tính năng liên quan nhưng sẽ được sử dụng trong tương lai. Bạn có thể xem danh sách từ khóa ở Phụ lục A.

[Đọc tiếp]