Tablardan Değerlerin Geri Dönüşü

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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.

  1. 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",
    }
  2. 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

  3. 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) do
    end
    end
  4. For 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) do
    if value == searchFor then
    return place
    end
    end
    end