Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

فرز مخصص باستخدام الدوال

جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 8 من 54.

على الرغم من أن table.sort() يعمل بشكل رائع مع القوائم البسيطة من الأرقام أو السلاسل النصية، فإن البيانات الواقعية غالبًا ما تكون أكثر تعقيدًا. قد يكون لديك جدول من سجلات اللاعبين أو عناصر المخزون أو نتائج الألعاب، حيث يكون كل إدخال في حد ذاته جدولًا يحتوي على حقول متعددة.

لفرز هذه الهياكل المعقدة، تحتاج إلى إخبار table.sort() بالضبط بكيفية مقارنة إدخالين. وهنا تصبح دوال المقارنة المخصصة ضرورية. تأخذ دالة المقارنة عنصرين وتُرجع true إذا كان ينبغي أن يسبق العنصر الأول العنصر الثاني في الترتيب المُفرَز.

إليك مثالًا يتضمن جدولًا لسجلات اللاعبين:

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)

بعد الفرز، سيتم ترتيب table الخاص باللاعبين حسب score بترتيب تنازلي، حيث يأتي Bob أولًا (200)، وCharlie ثانيًا (175)، وAlice ثالثًا (150). تصل دالة المقارنة إلى الحقل score في كل table من جداول اللاعبين لتحديد ترتيبها.

يمكنك الفرز حسب أي حقل تريده: الأسماء أبجديًا، والمستويات رقميًا، أو حتى الجمع بين معايير متعددة.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتحكم في التدفق

تدرّب بنفسك: مترجم Lua عبر الإنترنت