Jupi Posted March 25, 2016 Author Share Posted March 25, 2016 شرح رائع يا دابل واصل ولا توقف موفق <3 نورت ابن مركل Link to comment
Jupi Posted April 4, 2016 Author Share Posted April 4, 2016 تم اضافة شرح مفاتيح : __eq + __len + __metatable Link to comment
فاّرس Posted August 19, 2016 Share Posted August 19, 2016 موضوع مهم صراحه واكاد اجزم بأن 90% من المنتدى العربي اللي يعرفون البرمجه مايعرفون للميتا تيبل, '#' وعندي اضافه لـ لو كنت حاط اندكس بالترتيب وحطيت اندكس اكبر من الاندكسات الأخرى بكثر ما يطلعها لك, كـ مثال لكلامي : t = { [1] = 1, [2] = 2, [3] = 3, [200] = 200 } print ( #t ) -- 3 Link to comment
Jupi Posted August 20, 2016 Author Share Posted August 20, 2016 موضوع مهم صراحه واكاد اجزم بأن 90% من المنتدى العربي اللي يعرفون البرمجه مايعرفون للميتا تيبل,'#' وعندي اضافه لـ لو كنت حاط اندكس بالترتيب وحطيت اندكس اكبر من الاندكسات الأخرى بكثر ما يطلعها لك, كـ مثال لكلامي : t = { [1] = 1, [2] = 2, [3] = 3, [200] = 200 } print ( #t ) -- 3 نورت الموضوع يا شاطح وشكراً علي اضافتك :~) بضيفها بلشرح . Link to comment
</Mr.Tn6eL> Posted August 20, 2016 Share Posted August 20, 2016 موضوع مهم صراحه واكاد اجزم بأن 90% من المنتدى العربي اللي يعرفون البرمجه مايعرفون للميتا تيبل,'#' وعندي اضافه لـ لو كنت حاط اندكس بالترتيب وحطيت اندكس اكبر من الاندكسات الأخرى بكثر ما يطلعها لك, كـ مثال لكلامي : t = { [1] = 1, [2] = 2, [3] = 3, [200] = 200 } print ( #t ) -- 3 فيه بديل table.count : useful function Link to comment
فاّرس Posted August 20, 2016 Share Posted August 20, 2016 ^ مايحتاج تقدر تطلعها من اللوب . Link to comment
</Mr.Tn6eL> Posted August 20, 2016 Share Posted August 20, 2016 ^ مايحتاج تقدر تطلعها من اللوب . كيف؟ Link to comment
Jupi Posted August 20, 2016 Author Share Posted August 20, 2016 ^ مايحتاج تقدر تطلعها من اللوب . كيف؟ local var for Key, Value in pairs(Table) do var = (var or 0) + 1 end Link to comment
</Mr.Tn6eL> Posted August 20, 2016 Share Posted August 20, 2016 ^ مايحتاج تقدر تطلعها من اللوب . كيف؟ local var for Key, Value in pairs(Table) do var = (var or 0) + 1 end اقصد اني مني فاهم وش يقصد يطلع من اللوب بس اعتقد انه حجم الجدول Link to comment
Jupi Posted August 20, 2016 Author Share Posted August 20, 2016 اعتقد الاجابة في الكود :~) Link to comment
فاّرس Posted August 20, 2016 Share Posted August 20, 2016 ^ مايحتاج تقدر تطلعها من اللوب . كيف؟ اقصدك تقدر تجيب الحجم يعني كم عدد الاندكسات داخل الجدول . local var for Key, Value in pairs(Table) do var = (var or 0) + 1 end Key ايه ذا اللي اقصده .. وبالمره تقدر تطلع رقم الاندكس من خلال. Link to comment
#Plair07 Posted September 22, 2016 Share Posted September 22, 2016 (edited) مشكور عالشرح وماقصرت ولا هان تعبك .. بغيت اسأل الحين وش الميتا تيبل و وش إستخداماته , هل هو مثل ال اس كيو ال ولا وش نظامه بالضبط لأن اول مره اسمع فيه وماقد شفته بمود قبل كذا .. Edited September 22, 2016 by #Plair07 Link to comment
</Mr.Tn6eL> Posted September 23, 2016 Share Posted September 23, 2016 تستخدم لتغير طريقة استخدام الجداول وسلوكها الجداول تكون فقط لحفظ القيم لكن مع الميتا تيبل تقدر تسوي كلاسات وأشياء خارج عن المعتاد في الجداول يمديك تزود قيمة جدول مع جدول t1+t2 وتنقصه وتضربه وتخلي زي الفنكشن تقدر تستدعيه t( ) ومو مختص بالجداول فقط تقدر تحطه على السترنق مثلا اذا اي سترنق بالكود تم استدعائه يطبعه بالكونسل زي كذا getmetatable("").__call = function(s) print(s) end ("helloworld")() -- الاقواس للفصل عشان مايجينا خطأ Link to comment
#Plair07 Posted September 23, 2016 Share Posted September 23, 2016 1 hour ago, </Mr.Tn6eL> said: تستخدم لتغير طريقة استخدام الجداول وسلوكها الجداول تكون فقط لحفظ القيم لكن مع الميتا تيبل تقدر تسوي كلاسات وأشياء خارج عن المعتاد في الجداول يمديك تزود قيمة جدول مع جدول t1+t2 وتنقصه وتضربه وتخلي زي الفنكشن تقدر تستدعيه t( ) ومو مختص بالجداول فقط تقدر تحطه على السترنق مثلا اذا اي سترنق بالكود تم استدعائه يطبعه بالكونسل زي كذا getmetatable("").__call = function(s) print(s) end ("helloworld")() -- الاقواس للفصل عشان مايجينا خطأ هو مثل math.random وهالشغلات ولا انا غلطان ؟ لأن إذا هو عرفته م يحتاج وإذا انه شيء ثاني لزوم نتعمق به مع الوقت . Link to comment
</Mr.Tn6eL> Posted September 23, 2016 Share Posted September 23, 2016 لا ماله شغل في الراندوم هو شي تتعمق فيه زي ماقلت Link to comment
#BrosS Posted September 23, 2016 Share Posted September 23, 2016 شَرْح جَمِيِل . الله يعطيك العافيةة Link to comment
Jupi Posted September 24, 2016 Author Share Posted September 24, 2016 17 hours ago, #KraTos^_^ said: شَرْح جَمِيِل . الله يعطيك العافيةة نورت كراتوس Link to comment
iMr.WiFi..! Posted May 15, 2017 Share Posted May 15, 2017 (edited) مشكور ي دابل عـ شرح , هنا بعض الامثلة : MetaTabel = { -- سوينا جدول :) Meta = { }, -- نسوي جدول فاضي عشان نحوله ميتا New = function ( Num1, Num2 ) -- نسوي وظيفة فيها بارتمرين الي هم الرقم الاول والثاني local Wifi_ = { } -- نسوي جدول setmetatable(Wifi_,Meta) -- نربط الجدول بالجدول الفارغ ونخليه ميتا تيبل Wifi_.Num1 = Num1; -- نحط قيمة للرقم الاول Wifi_.Num2 = Num2; -- نحط قيمة للرقم الثاني عشان نجلبه Wifi_.Meta = MetaTabel.Meta; -- نحفظ الميتا في الجدول return Wifi_; -- نرجع القيمة جدول end, -- آند :" وفاصلة عشان نضيف وظيفة ثانية اذا اردنا Result = function ( Wish ) -- نسوي وظيفة تعطينا الجواب البارتمر الاول نطلب فيه الجدول الي فيه القيم local Res = Wish.Num1 + Wish.Num2; -- نجمع القيم return print(tostring(Res)) -- نرجع طباعة للنتيجة end -- آند } -- أقفال القوس dabl = MetaTabel.New ( 208, 202 ) -- نسوي عملية MetaTabel.Result ( dabl ) -- نطبع النتيجة --[[ 410 ]] wifi = MetaTabel.New ( 2304, 1242 ) -- نسوي عملية MetaTabel.Result ( wifi ) -- نطبع النتيجة --[[ 3546 ]] Calc = { } -- نسوي جدول فاضي عشان نحوله ميتا Calc.__index = Calc -- لما يستدعي شيء غير موجود بيرجعه Calc.New() setmetatable(Calc, {__call = function (win, ...) return win.New(...) end}) -- لما يستدعي شيء غير موجود بيرجعه Calc.New() local Wifi_ = { } -- نسوي جدول function Calc.New( ) return setmetatable(Wifi_,Calc); -- نربط الجدول بالجدول الفارغ ونخليه ميتا تيبل end -- آند function Calc:SetValues( FNum, SNum ) Wifi_.Num1 = FNum; -- نحط القيمة بأسم Num1 Wifi_.Num2 = SNum; -- نحط القيمة بأسم Num2 end -- آند function Calc:Result( ) local Res = Wifi_.Num1 + Wifi_.Num2; -- نجمع القيم return print(tostring(Res)) -- نرجع طباعة للنتيجة end -- آند dabl = Calc ( ) -- نسوي عملية dabl:SetValues(208, 202) -- نضع القيم dabl:Result ( ) -- نطبع النتيجة --[[ 410 ]] wifi = Calc( ) -- نسوي عملية wifi:SetValues(2304, 1242) -- نضع القيم wifi:Result ( ) -- نطبع النتيجة --[[ 3546 ]] ^ مثال آخر + الموضوع جداً مهم , لاحد يقول قديم :@ + أي واحد مافهم المثال يسئلني : ) Edited May 15, 2017 by !#NssoR_) Modified as requested. 2 Link to comment
Dr.Marco Posted May 15, 2017 Share Posted May 15, 2017 (edited) 4 hours ago, iMr.WiFi..! said: مشكور ي دابل عـ شرح , هنا بعض الامثلة : MetaTabel = { -- سوينا جدول :) Meta = { }, -- نسوي جدول فاضي عشان نحوله ميتا New = function ( Num1, Num2 ) -- نسوي وظيفة فيها بارتمرين الي هم الرقم الاول والثاني local Wifi_ = { } -- نسوي جدول setmetatable(Wifi_,Meta) -- نربط الجدول بالجدول الفارغ ونخليه ميتا تيبل Wifi_.Num1 = Num1; -- نحط قيمة للرقم الاول Wifi_.Num2 = Num2; -- نحط قيمة للرقم الثاني عشان نجلبه Wifi_.Meta = MetaTabel.Meta; -- نحفظ الميتا في الجدول return Wifi_; -- نرجع القيمة جدول end, -- آند :" وفاصلة عشان نضيف وظيفة ثانية اذا اردنا Result = function ( Wish ) -- نسوي وظيفة تعطينا الجواب البارتمر الاول نطلب فيه الجدول الي فيه القيم local Res = Wish.Num1 + Wish.Num2; -- نجمع القيم return print(tostring(Res)) -- نرجع طباعة للنتيجة end -- آند } -- أقفال القوس dabl = MetaTabel.New ( 208, 202 ) -- نسوي عملية MetaTabel.Result ( dabl ) -- نطبع النتيجة --[[ 410 ]] wifi = MetaTabel.New ( 2304, 1242 ) -- نسوي عملية MetaTabel.Result ( wifi ) -- نطبع النتيجة --[[ 3546 ]] Calc = { } -- نسوي جدول فاضي عشان نحوله ميتا Calc.__index = Calc -- لما يستدعي شيء غير موجود بيرجعه Calc.New() setmetatable(Calc, {__call = function (win, ...) return win.New(...) end}) -- لما يستدعي شيء غير موجود بيرجعه Calc.New() local Wifi_ = { } -- نسوي جدول function Calc.New( ) return setmetatable(Wifi_,Calc); -- نربط الجدول بالجدول الفارغ ونخليه ميتا تيبل end -- آند function Calc:SetValues( FNum, SNum ) Wifi_.Num1 = FNum; -- نحط القيمة بأسم Num1 Wifi_.Num2 = SNum; -- نحط القيمة بأسم Num2 end -- آند function Calc:Result( ) local Res = Wifi_.Num1 + Wifi_.Num2; -- نجمع القيم return print(tostring(Res)) -- نرجع طباعة للنتيجة end -- آند dabl = Calc ( ) -- نسوي عملية dabl:SetValues(208, 202) -- نضع القيم dabl:Result ( ) -- نطبع النتيجة --[[ 410 ]] wifi = Calc( ) -- نسوي عملية wifi:SetValues(2304, 1242) -- نضع القيم wifi:Result ( ) -- نطبع النتيجة --[[ 3546 ]] ^ مثال آخر + الموضوع جداً مهم , لاحد يقول قديم :@ + أي واحد مافهم المثال يسئلني : ) شرح واضح Edited May 15, 2017 by Dr.Marco Link to comment
coNolel Posted May 15, 2017 Share Posted May 15, 2017 والله اني كنت ادور بالقسم الأنجليزي ما ظنيت يكون فيه شرح عن شي متقدم نوعا ما زي الميتا تيبل و الـ Object oriented Programming أهنيكم Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now