Collection ها در دارت
در زبان دارت بر خلاف بقیه زبان ها آرایه وجود ندارد و به جای آن ۴ مدل داده ای برای شکل دادن به لیستی از داده ها و اشیاء وجود دارد که همگی در کتابخانه dart:core وجود دارند و شامل موارد زیر هستند :
۱- لیست (List)
۲- دسته (Set)
۳- نقشه (Map)
۴- صف (Queue)
لیست ها (List)
در لیست ها ، مجموعه ای از داده ها و اشیاء به صورت ترتیبی نگهداری می شوند ( یعنی آیتم جدید به انتهای لیست اضافه می شود ) . در لیست ها امکان حذف آیتم ها بر اساس ایندکس آنها وجود دارد ، همچنین لیست ها کنترلی بر روی دیتای تکراری ندارند . روش تعریف لیست ها به این شکل است :
var list = [1, 2, 3]; assert(list.length == 3); assert(list[1] == 2); list[1] = 1; assert(list[1] == 1);
دسته ها (Set)
دسته ها نیز می توانند مجموعه ای از داده ها و اشیاء را در خود ذخیره نمایند با این تفاوت که بر روی داده ها تکراری حساس هستند و اجازه ثبت اطلاعات تکراری را نمی دهند ، همچنین در دسته ها امکان دسترسی به آیتم ها بر اساس ایندکس آنها وجود ندارد . روش تعریف دسته ها به این شکل است :
var halogens = {'fluorine', 'chlorine', 'bromine', 'iodine', 'astatine'}; var elements = <String>{}; elements.add('fluorine'); elements.addAll(halogens); assert(elements.length == 5);
نقشه ها (Map)
در نقشه ها ، داده ها به صورت جفت های کلید-مقدار ذخیره سازی می شوند . در هنگام تعریف نقشه ها ، به صورت پیش فرض مقادیر مجاز برای کلید-مقدار ها dynamic در نظر گرفته می شوند ، مگر اینکه شما به صراحت نوع کلید و مقدار را مشخص نمایید . روش تعریف نقشه ها به این شکل است :
void main() { var name = <int , String>{ ۱ : 'Ali', ۲ : 'Reza', }; print(name);
صف ها (Queue)
صف ها نیز مجموعه اشیا مختلف را در خود ذخیره میکنند. تفاوت صف با سایر مجموعه ها مانند لیست در این است که داده ها میتوانند علاوه بر انتهای مجموعه، به ابتدای مجموعه نیز اضافه شوند. روش تعریف صف ها به این شکل است :
void main() { Queue numQ = new Queue(); numQ.addAll([100,200,300]); numQ.addFirst(400); numQ.addLast(500); print("Printing Q.. ${numQ}"); }
امیدوارم این مطلب برای شما مفید باشد . در این آدرس از سایت اصلی دارت اطلاعات بیشتری کسب نمایید . همچنین در این آدرس نیز می توانید دوره کاملی از آموزش دارت را مطالعه نمایید .