Duyệt bảng
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 17 trên 80.
Bạn đã lặp qua các bảng Lua nhiều lần rồi: Luau giữ nguyên các vòng lặp và thêm kiểu cho biến vòng lặp. Với mảng (array), ipairs duyệt các phần tử theo thứ tự, từ chỉ số 1 đến #t, và bạn có thể chú thích kiểu cho cả hai biến:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endHãy nhớ rằng ipairs dừng ở chỉ số đầu tiên bị thiếu: một chỗ khuyết nil ở giữa sẽ khiến vòng lặp kết thúc sớm. Điều này hiếm khi xảy ra với các mảng được giữ gìn tốt, nhưng bạn nên biết.
Với bản đồ (map), hãy dùng pairs, hàm này duyệt mọi cặp khóa/giá trị, kể cả khóa chuỗi. Trong bản đồ {[string]: number}, các biến vòng lặp lần lượt có kiểu tự nhiên là string và number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endMột lưu ý quan trọng: pairs duyệt các khóa thuộc phần băm theo thứ tự không được đảm bảo. Thứ tự có thể khác nhau giữa các lần chạy. Khi cần đầu ra xác định (báo cáo đã sắp xếp, bài kiểm thử), hãy đưa các khóa vào một mảng, sắp xếp mảng đó bằng table.sort, rồi lặp qua các khóa đã sắp xếp bằng ipairs và dùng chúng để truy cập bản đồ.
Thử thách
DễIn ra nhiệt độ của một tuần và tổng của chúng.
- Khai báo
local temps: {number} = {12, 15, 11, 14}vàlocal total = 0. - Lặp bằng
for day: number, temp: number in ipairs(temps) do, in ra`Day {day}: {temp}`và cộngtempvàototal. - Sau vòng lặp, in ra
total.
Nhấn Run Code: đầu ra hiển thị Day 1: 12 đến Day 4: 14, rồi đến 52.
Tự làm thử
-- 1) Khai báo temps: {number} và total = 0
-- 2) Dùng vòng lặp (loop) với day và temp đã khai báo kiểu dữ liệu, in ra từng ngày rồi cộng vào total
-- 3) In ra total
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