ماژول ها :
بازم باید از دو جهت ازت تشکر کنم که سید . هم واسه یاد دادن این مطلب و هم این الگوریتم (ای کاش بیشتر درباره اش توضیح میدادی . فراخونی اش چجوریه؟ من فراخونی کردم array[1][1] اما جواب نداد)
کلا من اگه لیست این تاپیک که وابسته به آموزشای بچه هاست رو لیست کنم ، یه فرا آرایه ی دویست بعدی درمیاد چند بعدش تا حالا شدن گلپسران حامد و جواد و محاسنین (دو تا محسن ) و سید انجمن مون و اوستا محمد (اون یکی منظورمه) . ماشاء ا... یه انجمن هست ، دویست تا دو به دو اسم دارن . سجادین انجمن =3 تا . محسنین انجمن = 2 تا . محمدین انجمن = 2 تا فقط حامدین و جوادین موند
چقد صوبت میکنم؟ بریم سر اسب مطلب
ماژول ها ، ادغام آرایه یا فرا آرایه با توابع هست که هر عضو آرایه یا فراآرایه ، میتونه یه تابع داشته باشه . برای ساختنش همونطور که از تعریفش معلومه ، باید اول یه فراآرایه تعریف کرد و بعد میتونیم هر عضوشو یه تابع بنویسیم (مختاریم) و ملومه که توابع تعریف شده ، هر کدومشون باید یه مقدار رو برگردونن تا موقع فراخونی ، یه حاصل و نتیجه ای بدست بیاد . برای فراخونی شم فقط کافیه اسم عضو اون فراآرایه رو که یه تابع هست نام برد و چون اون یک تابع هست و ممکنه ورودی یا آرگومان داشته باشه پس باید مثل فراخونی بقیه ی توابع ، آرگومانش هم تعریف کرد.
هدف از ماژول هم تقریبا میشه گفت مثل فراآرایه هست ، برای نظم بیشتر و نوشتن تعداد خطوط کمتر و راحت تره
ماژول تنها جاییه که یه تابع میتونه اسم نداشته باشه (البته با اسم رو تست نکردم) و نحوه ی فراخونی اش که گفته شد
پس هر جا آرایه رو همراه تابع دیدین ، ممکنه ماژول باشه
یه مثال بزنم (البته همه ی اینا از مثالای بچه هاست و اینم از سید اهل انجمن ، گلپسر محمد همونطور که گفته بودم):
کد:Math = { add = function (a,b) return(a+b) end, sub = function (a,b) return(a-b) end, mul = function (a,b) return(a*b) end, div = function (a,b) return(a/b) end
Math تو مثال بالا ، فرا آرایه ایه که 4 تا عضو داره و هر عضوشم یه تابع هست.
درسته که فرا آرایه ، چند بعدی نیست اما چون داخلش متغییر داره پس آرایه ی معمولی هم نیست و فرا آرایه هست که عضو هاش اینا هستن تو مثال بالا :
کد:Math={add,sub,mul,div}
که ملومم بود و هر کدوم شون هم که برابر تابع گرفته شدن ینی هر کدوم از عضو هاش ، یه تابع ان. برای فراخونی شم کافیه مثل فراخونی فرا آرایه عمل کنین (تو پست صفه اول که همرا متغییر بودن) ینی اسم اصلی فرا آرایه رو بنویسین و یه نقطه بزارین و اسم عضو داخلی شو (یا میشه گفت اون متغییر) رو بنویسین . مثلا برا فراخونی تابعی که کار جمع رو برعهده داره ، اسم اون فرا آرایه رو این جوری فراخونی کنین :
کد:Math.add
که ملوم بود .
** یه نکته اینه که چون تو ماژول ها ، تابع ها میتونن اسم نداشته باشن ، پس باید همونطور که گفته شد ، اسم اون عضو فرا آرایه رو مثل بالا فراخونی کرد و در این حالت هم بهتره برا هر تابع یه مقدار خاص رو برگردونین که میدونین از کلمه ی return باید استفاده شه (حالا بازم مختارین . میتونین بسته به حالات مختلف ، توابع مختلفی بنویسین که اصلا مقداری رو هم برنگردونه)
موفق و پیروز و سربلند باشید






پاسخ با نقل قول
Bookmarks