Birçok veri yapısındaki yaygın bir ihtiyaç, değerleri iade etmektir. Bu makale, anahtar veya değer gibi herhangi bir tabellenin yarısını bulmak için pairs() veya ipairs() kullanarak arama yapacak, diğer yarıyı bulup iade edecektir.
Örnek, onarılmaya bekleyen gemileri listeler. ipairs() kullanılarak bir geminin yerini hizalet içinde geri verir.
local shipToFind = "Void Racer"
-- Takılacak gemiler bekliyor
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Sıraya Geç
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Yerleri Sırayla Yazdır
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Sözlük Arama Örneği
Evdeki kayıp bir evcil hayvan aradın mı? Kendi kodunda, bir kütüphaneden isimlendirilen bir dizin aracılığıyla arama yaparak kayıp bir yavru görün.
Ev olarak hareket etmek için aşağıdaki sözlüğü kopyalayın.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Sözlüğü aramak için yeni bir işlev oluştur findPet() . Arama için sözlüğün kullanılacağı ve aranacak değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri değerleri de
Sözlüğü dizinlemeye pairs() kullanarak iterez. Aşağıdaki çözümde çalışmanızı kontrol etmeden önce kendi kodunuzu yazmayı deneyin.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendFor dictionaire's through the dizzy, use return to pass back the room where the pet was found.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend