Menu
Coddy logo textTech

Fonksiyonlar ile Özel Sıralama

Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 8 / 54.

table.sort() basit sayı veya dize listelerinde harika çalışsa da gerçek dünya verileri genellikle daha karmaşıktır. Her girdinin birden fazla alana sahip kendi başına bir tablo olduğu oyuncu kayıtları, envanter öğeleri veya oyun skorlarından oluşan bir tablonuz olabilir.

Bu karmaşık yapıları sıralamak için table.sort() işlevine iki girdinin nasıl karşılaştırılacağını tam olarak belirtmeniz gerekir. Özel karşılaştırma işlevleri burada vazgeçilmez hâle gelir. Bir karşılaştırma işlevi iki öğe alır ve sıralanmış düzende birincinin ikinciden önce gelmesi gerekiyorsa true döndürür.

İşte oyuncu kayıtlarından oluşan bir tabloyla ilgili bir örnek:

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

Sıralamadan sonra oyuncular tablosu, puana göre azalan sırada düzenlenecek; Bob birinci (200), Charlie ikinci (175) ve Alice üçüncü (150) olacaktır. Karşılaştırma işlevi, sıralarını belirlemek için her oyuncu tablosunun score alanına erişir.

İstediğiniz herhangi bir alana göre sıralama yapabilirsiniz: adları alfabetik olarak, seviyeleri sayısal olarak sıralayabilir veya birden çok ölçütü bile birleştirebilirsiniz.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi