Kiểu hợp
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 33 trên 80.
Đôi khi một kiểu dữ liệu là chưa đủ. ID người dùng có thể đến dưới dạng "user123" hoặc 42. Trong Lua thuần, bạn chỉ có thể hy vọng mọi chuyện ổn thỏa; Luau cung cấp cho bạn kiểu hợp (union type): dấu gạch đứng | có nghĩa là "hoặc":
local userId: number | string
userId = "user123" -- ✓ chuỗi được chấp nhận
userId = 42 -- ✓ số được chấp nhận
userId = true -- ✗ lỗi kiểu dữ liệu: boolean không thuộc kiểu hợpBiến có thể chứa một trong hai thành viên của kiểu hợp, và chỉ những thành viên đó. Đây là điểm khác biệt cốt yếu so với any: kiểu hợp vẫn giới hạn chặt chẽ những gì được phép, đồng thời cho bạn sự linh hoạt cần thiết.
Kiểu hợp đặc biệt hữu ích với tham số hàm (function) chấp nhận nhiều định dạng đầu vào:
function printId(id: number | string): ()
print(id)
end
printId(42) -- Chạy được với một số
printId("user123") -- Chạy được với một chuỗi (string)Bạn đã biết string?. Đó là kiểu hợp đầu tiên của bạn! Đây chỉ là cách viết tắt của string | nil. Trong bài học tiếp theo, bạn sẽ học cách làm việc an toàn với một giá trị kiểu hợp sau khi đã có nó.
Thử thách
DễChấp nhận một giá trị là số hoặc chuỗi.
- Viết
local function printId(id: number | string): ()để in raid. - Khai báo
local status: string | number = "active". - Gọi
printId(7)vàprintId("player7"), sau đó gánstatus = 200rồi in ra giá trị đó.
Nhấn Chạy mã: đầu ra hiển thị 7, player7 và 200.
Tự làm thử
-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) Gọi printId(7) và printId("player7"), gán status bằng 200, rồi in status ra
Tất cả bài học trong Giới thiệu về Luau
1Bắt đầu với Luau
Luau là gì?Tại sao nên dùng Luau?Đoạn code Luau đầu tiênKiểm tra kiểu và chế độ lỗiÔn tập: Giới thiệu về Luau4Làm việc với hàm
Kiểu dữ liệu cho tham số và giá trị trả vềKiểu dữ liệu cho hàm ẩn danhHàm không trả về giá trịTham số tùy chọnGiá trị tham số mặc địnhGiá trị Boolean mặc địnhHàm có số lượng tham số thay đổiĐịnh nghĩa kiểu hàmÔn tập: hàm có kiểu dữ liệu2Kiểu dữ liệu cốt lõi
Số, chuỗi và BooleanKiểu 'any': lối thoátKiểu 'unknown'Kiểu Nil và kiểu tùy chọnSuy luận kiểu trong thực tếChú thích kiểu tường minhÔn tập: luyện tập với kiểu dữ liệu cốt lõi5Bí danh kiểu, kiểu hợp và kiểu giao
Bí danh kiểu cho kiểu nguyên thủyKiểu hợpLàm việc với kiểu hợpKiểu literalKiểu giaoKết hợp bí danh kiểuÔn tập: kết hợp kiểu nâng cao3Bảng có kiểu: mảng và Map
Mảng có kiểuThêm và đọc phần tửKiểu Map là gì?Khai báo và truy cập MapDuyệt bảngBảng có cấu trúc hỗn hợpĐọc lướiTạo lướitable.unpackÔn tập: mảng và MapTự luyện tập: Trình biên dịch Luau online