نوشتن فراآرایه به روش دیگر و کاربردی تر :

تذکر : این قسمت آموزش فرا آرایه نیست بلکه آموزش آرایه ی چند بعدی هه . و هر وقت تو این پست حرف از فرا آرایه زده شد ، شما آرایه ی چند بعدی رو جاش بزارین . فرا آرایه یه چیز دیگه هست که تو آخرین پست گفته میشه

خسته کیه؟
نشنیدم؟
شنیدم بابا ، آروم تر ، کر شدم

خوب گلپسران اساتید ، نگا کنین ، همونطور که میدونین ، آرایه رو به دو روش میشه نوشت . یکی مثل روش بالا که تو پایین هم مینویسم و بلدین :

کد:
Array={10,7,3,"ali"}
یه نمونه ی دیگه که بیشتر از همه کاربرد داره ، بخاطر اینکه میتونیم برا ساختش از حلقه ی for استفاده کنیم ، این جوریه که بازم بلدین :

کد:
Array = {}
Array[1] = 10
Array[2] = 7
Array[3] = 3
خوب اِسا (حالا) داستان این جِه ی جا شرو بونِه که (داستان از اینجا شرو میشه که) فرا آرایه رو بصورت روش دوم بنویسیم . مازندرانی رو فول شدین عایا؟ نشدین ، تمرین میکنیم همونطور که بلدین و میدونین ، زیاد سخت نیست . دقیق مثل نام گزاری آرایه های معمولی هه . میدونین این قد رو که و همونطور هم که تو بالا اشاره ای شد ، اگه آرایه ای که زیر آرایه اش (عضو اش) اسم داشته باشه (ینی سمت چپ اش مساوی باشه) ، خوب اول باید اسم آرایه ی کل رو بنویسین و بعد یه نقطه بزارین و اسم اون آرایه یا همون عضو یا همون متغییر رو بنویسین . یا اینکه اسم نداره و فقط متغییر و عضو اش مقدار دارن که در این صورت باید شماره ی اون عضو رو تو اندیس بنویسین. مثلا تو مثال :

کد:
a={v={ 7, 1, 30},y=20,z=30}
برا نامگزاری و فراخونی y امین عضو آرایه ی a که 20 هست (**یادتون باشه که تا وقتی که یه عضو را برابر یه متغییر گرفتیم ، مثل همین y ، دیگه گفتن شماره و اندیس برا اون عضو بی معنی هه ینی اینجا نمیششه گفت دومین عضو آرایه ی a برابر 20 هست . باید بگین y امین عضو از آرایه ی a) باید بنویسین a.y که میدونین و اوستایین دیگه ، ینی y امین عضو از آرایه ی a که چن بود؟ 20 بود دیگه. خوب پس فراخونی اش چجوری هه؟ ینی هر جا نقطه اومد ، سمت راست اون نقطه (در اینجا y) زیر مجموعه ی هر چی که سمت چپ نقطه نوشته هه هست (در اینجا a) و ممکنه حتی این زیر مجموعه (در اینجا y ) ، خودش یه آرایه ی دیگه ای باشه (که فلا تو این مثال نیست )

**یادتون باشه که تو فرا آرایه ، اگه عضوی نامگزاری نشه (متغییر براش تعریف نشه و مثل حالت عادی باشه)، به عنوان اولین عضو اون آرایه حساب میشه . مثلا تو مثال :

کد:
a={v={ 7, 1, 30},y=20,30}
تو اینجا ، از زیر مجموعه های آرایه ی a ، آرایه ی v که خودش زیرآرایه ی a هسست (ینی واسه خودش یل ای هه و ازدواج کرد و تشکیل خانواده داد ) ینی هر چی که آرایه بود رو کار نداریم . y که براش نام انتخاب شد و عضو نامداری هه (ینی آدم معروف و نامداری هه) تنها بی نام و نشون میمونه اون آخری هه که 30 هست و برخلاف تصور ، اولین بی نام و نشون میشه ، اولین عضو آرایه که a بودش . ینی :

کد:
a[1] = 30
میباشد.
مثالای دیگه هم که تو پست بالا کار کردیم و نامگزاری رو بلدین دیگه؟ مثل :

کد:
a.v[2] = 1
ینی اینکه دومین عضو از آرایه (یا زیر آرایه) ی v از آرایه ی a که میبینین میشه 1
حالا بریم سر خر ماجرا (نه اسب) ینی که میخایم همون آرایه ی a ی بالا رو یه جور دیگه بنویسیم (که اصل ماجرا گفته شد) :
اول اینو پایین دوباره بنویسم تا تو چش بیاد قشنگ :

کد:
a={v={ 7, 1, 30},y=20,30}
دونه دونه از اول انگار میخایم فراخونی کنیم و مثل مثال ساده ای که همون اول همین پست (چند خط اول) گفتم ، هر جا آرایه یا زیر آرایه (منظورم از زیر آرایه عضو های عادی نیستا . مثل v تو مثال بالا هه که زیر آرایه هه) و کلا هر جا علامت آرایه که میدونین {} دیدین ، مثل مثال اول ، قبلش باید تعریف کنین پس من برا نوشتن آرایه ی بالا ، اول آرایه ی a رو دیدم .پس تو خط اول مینویسم:
کد:
a = {}
بعد آرایه یا همون زیر آرایه ی v دیدم پس تو خط بعدش باید عضو شو ملوم کنم . مثل همون قضیه ی بالا ینی جایگاه v اینجوری میشه که v امین عضو از آرایه ی a هست و چون خودش آرایه هست باید یه آرایه براش تریف کنم :
کد:
a.v = {}
حالا نوبت میرسه به اولین عضو زیر آرایه ی v که 7 هست و چون اولین عضو آرایه ی v هست و عضو اش هم نامگزاری نشدش پس باید با اندیس نامگزاری کنم پس تو خط بعد مینویسم :
کد:
a.v[1] = 7
همینطور خط بعد :
کد:
a.v[2] = 1
همینطور خط بعد :
کد:
a.v[3] = 30
خط بعدش هم که عضو y میشه و دیگه زیر مجموعه ی آرایه ی v نیست پس دیگه v رو لازم نیست بنویسیم و میشه y امین عضو از آرایه ی a ینی :
کد:
a.y = 20
خط بعدش هم همونطور که گفته شد ، چون عضوش نام نداره و اولین عضو بدون نام هست ، پس اولین عضو آرایه ی ماقبل خودش که a هست میشه ینی :
کد:
a[1] = 30
پس در کل نوشتن اش تو خط های پشت سر هم میشه :

کد:
a = {}
a.v = {}
a.v[1] = 7
a.v[2] = 1
a.v[3] = 30
a.y = 20
a[1] = 30
حالا یه مثال دیگه :

کد:
Array = {Madrese={5,"Tafrih"},"Ali",Khone={12,Bazar={1,2,3,4,5,6,7,8}}}
جان من اسم متغییرها رو حال کردین؟
اینو توضیح بدم؟ مینویسم ، مثل قضیه ی بالاهه هر کی سئوال داشت ، بگه (کسی نمیاد اینورا که بخونه که سئوال داشته باشه )

کد:
Array = {}
Array.Madrese = {}
Array.Madrese[1] = 5
Array.Madrese[2] = "Tafrih"
Array[1] = "Ali"
Array.Khone = {}
Array.Khone[1] = 12
Array.Khone.Bazar = {}
Array.Khone.Bazar[1] = 1
Array.Khone.Bazar[2] = 2
Array.Khone.Bazar[3] = 3
Array.Khone.Bazar[4] = 4
Array.Khone.Bazar[5] = 5
Array.Khone.Bazar[6] = 6
Array.Khone.Bazar[7] = 7
Array.Khone.Bazar[8] = 8
همونطور که میدونین ، 8 تا خط آخر هم میتونین با حلقه ی for تریف کنین :

کد:
Array = {}
Array.Madrese = {}
Array.Madrese[1] = 5
Array.Madrese[2] = "Tafrih"
Array[1] = "Ali"
Array.Khone = {}
Array.Khone[1] = 12
Array.Khone.Bazar = {}


for i=1,8 do
Array.Khone.Bazar[i] = i
end
دیدین که همه چی آسون بود
یادتون نره که تو صفه ی 4 پست 39 ، فراآرایه ی چند بعدی رو هم دنبال کنین چون مبحث کاربردی ایه