MengembalikanNilai dari Tabel

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Kebutuhan umum dalam banyak struktur data adalah untuk mengembalikan nilai. Artikel ini akan mencakup mencari tabel menggunakan pairs() atau ipairs() untuk setengah dari setiap elemen tabel, seperti kunci atau nilai, untuk menemukan dan mengembalikan setengah lainnya.

Contoh menggunakan daftar kapal yang menunggu untuk diperbaiki. ipairs() digunakan untuk mengembalikan tempat kapal di garis.


local shipToFind = "Void Racer"
-- Kapal yang menunggu untuk diperbaiki
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Dapatkan tempat di garis
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Cetak tempat di garis
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)

Contoh Pencarian Kamus

Pernahkah Anda mencari hewan peliharaan yang hilang di rumah pergi dari ruangan ke ruangan? Dengan kode Anda sendiri fungsi untuk mencari melalui kamus bernama rumah untuk melihat ruangan mana yang berisi anak anjing yang hilang.

  1. Kopi kamus di bawah ini untuk bertindak sebagai rumah.


    local house = {
    kitchen = "pile of Junk",
    livingRoom = "kitten",
    bedroom1 = "nobody there",
    bedroom2 = "puppy",
    }
  2. Buat fungsi baru bernama findPet() untuk mencari kamus. Masukkan parameter untuk apa kamus akan mencari, dan apa nilai untuk dicari.

  3. Gunakan pairs() untuk mengulangi melalui kamus. Coba kode sendiri sebelum memeriksa pekerjaan Anda di solusi di bawah ini.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    end
    end
  4. Saat for loop berulang melalui典典, gunakan return untuk mengembalikan ruangan di mana hewan peliharaan ditemukan.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    if value == searchFor then
    return place
    end
    end
    end