Giá trị truthy và falsy
Thuộc phần Nền tảng cơ bản trong hành trình Lua của Coddy. Bài học 24 trên 90.
Khi sử dụng các toán tử logic như and, or và not, Lua cần xác định giá trị nào được xem là "đúng" hoặc "sai" trong các ngữ cảnh logic. Khái niệm này được gọi là giá trị truthy và falsy, và Lua xử lý chúng khác với nhiều ngôn ngữ lập trình khác.
Trong Lua, chỉ có hai giá trị được xem là sai (được xử lý như false trong các phép toán logic):
print(false and "This won't print") -- false là giá trị falsy
print(nil and "This won't print") -- nil là giá trị falsyLưu ý rằng and và or trả về một trong các toán hạng của chúng, chứ không chỉ trả về true hoặc false: a and b trả về a khi a là giá trị sai, nếu không thì trả về b; a or b trả về a khi a là giá trị đúng, nếu không thì trả về b. Vì vậy, hai dòng ở trên in ra false và nil, còn mỗi dòng bên dưới in ra phần văn bản của nó.
Mọi thứ khác trong Lua đều được xem là đúng (được coi là true trong các phép toán logic). Điều này bao gồm cả những giá trị có thể khiến bạn ngạc nhiên nếu đã quen dùng ngôn ngữ khác:
print(0 and "This will print") -- 0 được xem là đúng trong Lua!
print("" and "This will print") -- Chuỗi rỗng được xem là đúng!
print({} and "This will print") -- Bảng rỗng được xem là đúng!Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
4Toán tử 2: quan hệ và logic
Toán tử bằngToán tử quan hệToán tử andToán tử orToán tử notĐánh giá ngắn mạchGiá trị truthy và falsyÔn tập: logic đơn giản10Bảng phần 1: kiểu danh sách
Bảng là gì?Tạo bảngTruy cập phần tử theo chỉ sốSửa đổi phần tử theo chỉ sốToán tử độ dài '#'table.insert()table.remove()Ôn tập: quản lý thành viên nhóm13Dự án: Cửa hàng thuốc đơn giản
Thiết lập dự ánThêm một loại thuốc2Biến và kiểu dữ liệu
Biến là gì?Các sốChuỗiGiá trị BooleanGiá trị 'nil'Hàm type()Quy ước đặt tênÔn tập: hồ sơ nhân vật5Đầu ra cơ bản
In các giá trị cố địnhIn biếnIn nhiều giá trịKết hợp chuỗi và biếnHàm tostring()Đầu vàoÉp kiểuÔn tập: Báo cáo trạng tháiÔn tập: Đến 1208Cơ bản về thao tác với chuỗi
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Ôn tập: định dạng tên người dùng3Toán tử 1: số học và nối chuỗi
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaNối chuỗiThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giản6Dự án: Hiển thị chỉ số nhân vật
Lời chào mừngKhai báo chỉ số nhân vật9Cơ bản về hàm
Khai báo hàmGọi hàmHàm có tham sốHàm có nhiều tham sốCâu lệnh returnÔn tập: Máy tính diện tíchTự luyện tập: Trình biên dịch Lua online