sound test | Leopold FC980M BT Silent Red Switch (White Grey)
Silent Red gõ rất thích mỗi tội khi kết nối bluetooth thì đèn capslock/numlock không sáng :(. Kết nối qua USB thì đèn vẫn sáng bình thường.
Nâng cấp Fedora 36 lên Fedora 37
-
Cập nhật phiên bản mới nhất của Fedora 36:
sudo dnf upgrade --refresh
-
Khời động lại máy.
-
Cài đặt gói
dnf-plugin-system-upgrade
nếu nó chưa được cài đặt:sudo dnf install dnf-plugin-system-upgrade
-
Tải các gói của Fedora 37:
sudo dnf system-upgrade download --releasever=37
-
Bắt đầu nâng cấp. Máy sẽ bị khởi động lại:
sudo dnf system-upgrade reboot
-
Đợi quá trình nâng cấp hoàn tất.
Tham khảo
https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/
[Rust Book] 4.1. Tham chiếu và Vay Mượn (References and Borrowing)
[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
[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:
[Rust Book] 3.1. Biến và khả năng thay đổi
[Đọc tiếp]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.