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 dizge listeleri için harika çalışsa da gerçek dünyadaki veriler genellikle daha karmaşıktır. Her bir girdinin birden fazla alan içeren bir tablonun kendisi olduğu oyuncu kayıtları, envanter öğeleri veya oyun puanlarından oluşan bir tablonuz olabilir.
Bu karmaşık yapıları sıralamak için table.sort() fonksiyonuna iki girdiyi tam olarak nasıl karşılaştıracağını söylemeniz gerekir. Özel karşılaştırma fonksiyonları bu noktada vazgeçilmez hâle gelir. Bir karşılaştırma fonksiyonu iki öğe alır ve sıralı düzende ilk öğe ikinciden önce gelmeliyse true döndürür.
Oyuncu kayıtlarından oluşan bir tabloya ö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üzenlenir; ilk sırada Bob (200), ikinci sırada Charlie (175) ve üçüncü sırada Alice (150) yer alır. Karşılaştırma işlevi, sıralarını belirlemek için her oyuncu tablosunun score alanına erişir.
İstediğin alana göre sıralama yapabilirsin: adları alfabetik, seviyeleri sayısal olarak ya da birden fazla ölçütü birleştirerek.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
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
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor TablosuKendi başına pratik yap: Online Lua derleyicisi