سلام دوستان عزیز
قسمت عددی آرایه ها تموم شد، حالا میمونه آرایه های رشته ای. چیز جالبی شد.
این کد رو اگه به برنامه بدید:
کد:
$arr[1,2,3,4]='str'
$arr[1,2][5]=123
$arr[2]=True
Dialog.message($arr)
نتیجه ای که داخل یک مسیج باکس نشون داده میشه:
کد:
[COLOR=#ff0000][B] Arra[/B][/COLOR][B][COLOR=#ff0000]y(1->[/COLOR][/B][COLOR=#ff0000][/COLOR][COLOR=#0000cd]Array([/COLOR][COLOR=#0000ff]2->[/COLOR][COLOR=#ff8c00]Array(3->[/COLOR][COLOR=#000000][B]Array(4->str)[/B][/COLOR][COLOR=#ff8c00], 5->123[/COLOR][B][COLOR=#ff8c00])[/COLOR][/B][COLOR=#0000cd])[/COLOR][COLOR=#ff0000][B], 2->True)[/B][/COLOR]
نکته ای که فکر کنم قبلا هم گفتم اینه که چه شما بین ایندکسهای آرایه های چند بعدیتون کاما بذارید چه ][ فرقی نداره.
اگه درست متوجه شده باشم 'str[1,2,3,4]='str$ یعنی str$ یک آرایه چهار بعدی (یا پنج بعدی، چون 'str' خودش یک آرایه ئه) است،
که در خونه ای از این آرایه رشته str قرار گرفته که معادل 'str[1][2][3][4]='str$ هم هست.
ظاهرا مقدار دهی یک اندیس از آرایه به مفهوم تعریف ابعاد کل آرایه نیست، چون str[2]=true$ هم معتبره. چند تا نکته مبهم هست :
1) حالا [str[1 $ می تونه مستقلا وجود داشته باشه و مقدار دهی بشه یا همون (((Array(2->Array(3->Array(4->str است و اگه مقدار دهی بشه آرایه قبلی از بین رفته؟
2) اگه [str[2,1 $ مقدار دهی بشه، تناقضی با [str[2 $ که قبلا مقدار دهی شده نداره و هر دو سر جاشون هستند؟ اگه جواب مثبته و [str[2 $ هم یک رشته بود [str[2,1 $ کاراکتر اول
رشته قبلی است یا مقدار داخل آرایه ای که بعدا مقدار دهی شده؟
3) رشته آرایه حساب میشه، پس الان [str[1,2,3,4,2 $ یا همون [str[1][2][3][4][2 $ برابر t است؟ [str[2,2 $ یا همون [str[2][2 $ خطای اندیس نامعتبر آرایه میده؟
4) اگه [str[3,1 $ و [str[3,3 $ رو مقدار دهی کردیم، [str[3,2 $ نیازی به مقدار دهی داره؟ اگه مقدار دهی نشه، به دلیل بروز خطا حلقه x از 1 الی 3 هم برای [str[3][x $ قابل استفاده نیست؟
5) آیا str[3]=$str$ یا other=$str$ یا [sub[1,1]=$str[1,2 $ قابل استفاده است؟ مقادیر داخل آرایه رو کپی می کنند یا ارجاعی به بخشی از حافظه str$ میشه؟
6) الان یک str$ ای داریم که بخشی اش آرایه است، بخشی اش نیست، اندیس شروع و انتهای ابعاد شون متغیره، نوع داده داخل شون هم همین طور. چطوری یک
حلقه for می تونه تمامی خونه های این آرایه ترکیبی رو پیمایش کنه؟