Mảng có kiểu
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 13 trên 80.
Mảng có kiểu là một trong những tính năng hữu ích nhất của Luau để sắp xếp nhiều giá trị mà vẫn đảm bảo an toàn kiểu dữ liệu.
Trong Lua, mảng chỉ là một bảng có các giá trị ở vị trí 1, 2, 3, …, và bảng có thể chứa đồng thời một số, một chuỗi và một giá trị boolean. Luau cho phép bạn khai báo rằng một bảng chỉ nên chứa các phần tử thuộc một kiểu dữ liệu, bằng cú pháp {Type}:
local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}Khi khai báo một mảng có kiểu, trình kiểm tra kiểu của Luau đảm bảo chỉ các giá trị thuộc kiểu đã khai báo mới được đưa vào. Nếu chèn một chuỗi vào mảng {number}, bạn sẽ gặp lỗi kiểu dữ liệu khi đang chỉnh sửa, trước khi code chạy:
local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ lỗi kiểu dữ liệu: chuỗi không phải là sốMọi điều bạn đã biết về bảng trong Lua vẫn áp dụng: mảng bắt đầu từ chỉ số 1 (scores[1] là phần tử đầu tiên), #scores là độ dài, còn table.insert và table.remove vẫn hoạt động như thường. Phần chú thích kiểu giúp tăng độ an toàn, chứ không thay đổi hành vi khi chạy.
Thử thách
DễLưu điểm số và tên trong các mảng có kiểu dữ liệu.
- Khai báo
local scores: {number} = {85, 92, 78}. - Khai báo
local studentNames: {string} = {"Alice", "Bob", "Charlie"}. - In ra
scores[1],#scoresvàstudentNames[2], mỗi giá trị trên một dòng.
Nhấn Chạy Code: đầu ra hiển thị 85, 3 và Bob.
Tự làm thử
-- 1) Khai báo scores: {number} và studentNames: {string}
-- 2) In ra điểm đầu tiên, số lượng điểm và tên thứ hai
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