Duyệt bằng ipairs()
Thuộc phần Logic và luồng chương trình trong hành trình Lua của Coddy. Bài học 2 trên 54.
Mặc dù pairs() hoạt động với mọi cấu trúc bảng, Lua còn cung cấp hàm chuyên dụng ipairs() dành riêng cho các bảng dạng danh sách. Hàm này duyệt qua bảng theo thứ tự tuần tự, bắt đầu từ chỉ số 1 và tiếp tục cho đến khi gặp giá trị nil.
Cú pháp của ipairs() tương tự như pairs():
for index, value in ipairs(myList) do
-- dùng index và value ở đây
endĐây là một ví dụ về danh sách vật phẩm nhiệm vụ:
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
endĐầu ra:
1. Map
2. Compass
3. Torch
4. RopeĐiểm khác biệt chính so với pairs() là ipairs() dừng ngay khi gặp giá trị nil, ngay cả khi vẫn còn phần tử phía sau.
Thử thách
DễViết một hàm listTasks nhận một bảng tasks và trả về một chuỗi được định dạng, liệt kê tất cả nhiệm vụ kèm số thứ tự.
Dùng ipairs() để lặp qua các nhiệm vụ theo thứ tự tuần tự và tạo một chuỗi, trong đó mỗi dòng hiển thị số thứ tự nhiệm vụ, theo sau là tên nhiệm vụ theo định dạng number. task. Mỗi nhiệm vụ nằm trên một dòng riêng.
Tham số:
tasks(table): Một bảng dạng danh sách chứa tên nhiệm vụ dưới dạng chuỗi
Giá trị trả về: Một chuỗi có mỗi nhiệm vụ được đánh số trên một dòng riêng. Định dạng:
1. task1
2. task2
3. task3Tự làm thử
function listTasks(tasks)
-- Viết code ở đây
end
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 Logic và luồng chương trình
2Các hàm khác của thư viện table
table.concat()Tạo table và unpack()table.sort()Sắp xếp tùy chỉnh bằng hàmÔn tập: Bảng điểm cao5Dự án: Bộ máy trò chơi phiêu lưu bằng văn bản
Thiết lập dự án: Căn phòngLiên kết các phòngTự luyện tập: Trình biên dịch Lua online