Jump to content

pairs - ipairs


Recommended Posts

السلآمم عليكمم ششبآب #

ححبيت آععرفف ششنو الففرق بين

ipairs 

&

pairs 

و وش ففآيدتهمم ؟ !

نآسس تققول تخرج ققيمةة من الجدول ؟

وش يعني

وممكن ممثآل بسسيط ؟ = ))

!

Edited by Guest
Link to comment
ipairs تستخدم لعمل لوب للتيبل

تيبل = جدول

كيف يعني لوب ؟

لمن يكون عندك جدول فيه اللاعبين مثلا, وانت تبي تعطي كل اللاعبين اللي في الجدول 100 ريال

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

يعني اللوب انك تلف على كل عنصر في الجدول وتنفذ عليه العملية المطلوبة

مثال

كود برستيج

      
      
    -- Server Side Script ; 
      
    addCommandHandler("delete", -- نسوي الكوماند 
    function ( ) -- وظيفة 
        for _,v in ipairs ( getAccounts() ) do -- نجيب الحسابات عن طريق جدول # 
            removeAccount ( v ); -- نحذف جميع الحسابات 
        end; -- نغلق 
    end -- نغلق 
    ); -- اغلاق 

for _,v in ipairs ( getAccounts ( ) ) do

يعني نسوي جدول بكل الحسابات اللي في السيرفر وننفذ العملية على كل عنصر في الجدول

removeAccount العمليه هي الحذف

??? v طبعا تسأل وش هي الـ

هي التعرف اللي احنا حطيناه في اللوب

for _,v ...

ممكن تكون أي شي v ومو شرط انها تكون

for _,xD

^^ إذا في شي ما فهمته قولي وبشرحه لك

+ http://www.lua.org/manual/5.1/manual.html#pdf-pairs

Link to comment

شوف الفرق بينهم أنا ما أعرفه الصراحة, لكن وش فايدتهم ؟

تقريباً زي ما قلت, إستخراج قيمة من الجدول, بس هدي تسوي لووب للجدول

كيف يعني ؟

Players عشان نسوي جدول لاعبين ونحفظ الجدول في متغير getElementsByType يعني مثلا نستخدم

Players = getElementsByType ( 'player' ); 

وبعدين نسوي اللوب

for k,v in ipairs( Players ) do 

k,v > هذي هي الأشياء إللي تاخذها من الجدول

k = المفتاح

v = القيمة

غالبا نتعامل مع القيمة, فإذا ما كنت تحتاج المفتح تقدر تتخطاه كدا

for _,v in ipairs( Players ) do 

أو خليه ما تفرق ذذ

طيب جبنا الطاولة وخليناها معرفة بمتغير وسوينالها لووب

دحين مثلا نبغى نعطي كل اللاعبين 100 دولار, نسوي العملية حقت الإعطاء داخل اللوب

ونستخدم القيمة مو المفتاح

for k,v in ipairs( Players ) do 
    givePlayerMoney ( v, 100 ); 
end 

هذا راح يعطي كل اللاعبين 100 دولار

أما لو تبي تعطي مثلا تيم معين, نقول تيم الفقيرين

for k,v in ipairs( Players ) do 
    local team = getPlayerTeam ( v ); 
    if team and getTeamName ( team ) == 'Poor' then 
        givePlayerMoney ( v, 100 ); 
    else 
        outputChatBox ( 'You do have money !', v ); 
    end 
end 

You do have money ! هذا راح يعطي 100 دولار للفقيرين, ويقول للبقية

مع طاولة تجيبها من فنكشن, ممكن تستخدمها مع أي طاولة ipairs - pairs ومو شؤط تستخدم

+ يكون أحسن ipairs - pairs بدل next أنا إللي أعرف إنه لو إستخدمت

for k,v in next, Players do 

وبس ذذ

إذا في شي ما فهمته قولي أشرحه لك ,,

Link to comment

لووب تقدر تقول يعني يمر على كل عنصر بالجدول, مثلا لو جدول لاعبين يصير اللوب راح يمر على كل اللاعبين ويسوي عليهم الوظيفة الموجودة داخله

القيممة والمفتاح :

table = {  
    ['key'] = value 
} 

key = المفتاح

value = القيمة

k,v يختصروها

وإذا كان جدولك كذا

table = { 
    'text1', 
    'text2' 
} 

قيم text2 ,text1 فالعبارتين

يعني لو ما حددت مفتاح, العنصر المدخل يعتبر قيمة

Link to comment

pairs

او

ipairs

هي وظايف تستخدم لاخراج او لاعادة الكود لكل مرة حسب الاشياء الي بالجدول

مثلاً عندك

ipairs 

هذي تخرج كل شيء واحد بالجدول يعني مو معرف بشيء داخل الجدول مثل

["test"] = "ok"

مثال

local rybak = {"ok", "hi", "hello"} 
  
for i,v in ipairs(rybak) do 
    outputChatBox("number of the item: " .. i .. ", item name: " .. v) 
end 

هذا رح يطلع بالشات 3 نصوص مثل كذا

number of the item: 1, item name: ok

number of the item: 2, item name: hi

number of the item: 2, item name: hello

اما

pairs 

فهذي تستخدم اذا كان في شيء معرف بشيء مثل

local rybak = {["Hi"] = "Hello", ["Bye"] = "Bye"} 

الحين كل فردين معرف على انه شي واحد اساساً كلمة

pairs

تعني ازواج, لا تحسب ازواج متزوجين ذذ, لا ازواج يعني شيئين, شيئين

مثال :

local rybak = {["Hi"] = "Hello", ["Bye"] = "Byee", ["ok"] = "Alright"} 
for i,v in pairs(rybak) do 
    outputChatBox("key: " .. i .. ", value: " .. v) 
end 

هذا رح يطلع بالشات 3 مرات في 3 نصوص كذا :

key: Hi, value: Hello

key: Bye, value: Byee

key: ok, value: Alright

ان شاء الله فهمت

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...