Menu
CoddyTech

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.

challenge icon

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. task3

Tự làm thử

function listTasks(tasks)
    -- Viết code ở đây
end
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Lua online