دیتا تایپ List در زبان برنامهنویسی دارت، نوعی ساختار دادهای است که شامل یک مجموعه از المانها با نوع یکسان است. برای تعریف یک لیست در دارت، از کلیدواژه List استفاده میشود. برای مثال، تعریف یک لیست از اعداد صحیح به شکل زیر انجام میشود:
List<int> numbers = [1, 2, 3, 4, 5];
در این مثال، یک لیست با نام numbers تعریف شده است که شامل اعداد صحیح 1 تا 5 میباشد. نوع المانهای این لیست به int تعیین شده است.
میتوان به روش دیگری هم یک لیست را تعریف کرد، که در این روش از کلیدواژه const استفاده میشود. برای مثال:
final List<String> names = const ['Erfan', 'Reza', 'maryam'];
در این مثال، یک لیست از رشتهها با نام names تعریف شده است که شامل رشتههای “Reza”، “Maryam” و “Erfan” میباشد. نوع المانهای این لیست به String تعیین شده است و با استفاده از کلیدواژه const از تغییر در لیست جلوگیری شده است.
علاوه بر این، میتوان به روشهای دیگری هم لیستها را تعریف کرد. به عنوان مثال، میتوان از کلیدواژه var برای تعریف یک لیست استفاده کرد و نوع المانهای آن را بعداً تعیین کرد. به علاوه، میتوان از کلیدواژه final برای تعریف یک لیست غیرقابل تغییر (immutable) استفاده کرد.
عملیاتهای مربوط به لیستها در دارت، مانند اضافه کردن المان به لیست، حذف المان از لیست، دسترسی به المانهای لیست و… برای انجام این عملیاتها، از متدهایی که برای لیستها در دارت تعریف شده است، استفاده میشود.
برای مثال، برای اضافه کردن یک المان به یک لیست، میتوان از متد add استفاده کرد. به عنوان مثال
List<int> numbers = [1, 2, 3, 4, 5];
numbers.add(6);
در مثال بالا یک المان با مقدار 6 به لیست numbers اضافه شده است.
برای حذف یک المان از یک لیست، میتوان از متد remove استفاده کرد. به عنوان مثال:
List<String> names = ['Erfan', 'Reza', 'Maryam'];
names.remove('Maryam');
در مثال بالا المان با مقدار “maryam” از لیست names حذف شده است.
برای دسترسی به المانهای لیست، میتوان از شاخصگذاری (indexing) استفاده کرد. در دارت، شماره المانها از صفر شروع میشود. به عنوان مثال:
List<int> numbers = [1, 2, 3, 4, 5];
int thirdNumber = numbers[2];
در این مثال، با استفاده از شاخص گذاری، عدد سوم در لیست numbers بدست آمده و در متغیر thirdNumber ذخیره شده است.
همچنین، برای انجام عملیاتهای دیگر روی لیستها، مانند تعداد المانهای یک لیست یا مرتب کردن المانهای لیست، متدهای دیگری نیز برای لیستها در دارت تعریف شده است.
برای مثال، برای دریافت تعداد المانهای یک لیست، میتوان از متد length استفاده کرد. به عنوان مثال:
List<String> names = ['Erfan', 'Reza', 'Maryam'];
int numberOfNames = names.length;
در مثال قبل تعداد المانهای لیست names با استفاده از متد length بدست آمده و در متغیر numberOfNames ذخیره شده است.
همچنین، برای مرتب کردن المانهای یک لیست، میتوان از متد sort استفاده کرد. به عنوان مثال:
List numbers = [3, 1, 4, 2, 5];
numbers.sort();
در مثال قبل المانهای لیست numbers با استفاده از متد sort مرتب شدهاند.
همچنین، برای تبدیل یک لیست به رشته، میتوان از متد join استفاده کرد. به عنوان مثال:
List<String> names = ['ٍErfan', 'Reza', 'Maryam'];
String joinedNames = names.join(', ');
در مثال بالا المانهای لیست names با استفاده از متد join به یک رشته تبدیل شدهاند.
لازم به ذکر است که در دارت، میتوان از چندین نوع لیست استفاده کرد، از جمله List، List<int>، List<String> و غیره. هر کدام از این لیستها دارای متدها و عملیاتهای خاص خود هستند.
همچنین در دارت، میتوان از متدهای دیگری نیز برای انجام عملیاتهای پیچیدهتر روی لیستها استفاده کرد. به عنوان مثال:
- متد where: برای فیلتر کردن المانهای یک لیست بر اساس یک شرط مشخص، میتوان از متد where استفاده کرد. به عنوان مثال:
List<int> numbers = [1, 2, 3, 4, 5];
List<int> evenNumbers = numbers.where((number) => number % 2 == 0).toList();
در مثال قبل با استفاده از متد where، المانهایی از لیست numbers که بر دو بخشپذیرند، فیلتر شده و در لیست evenNumbers ذخیره شدهاند.
- متد map: برای تبدیل المانهای یک لیست به المانهای دیگر بر اساس یک تابع مشخص، میتوان از متد map استفاده کرد. به عنوان مثال:
List<int> numbers = [1, 2, 3, 4, 5];
List<String> numberStrings = numbers.map((number) => 'Number $number').toList();
در این مثال، با استفاده از متد map، المانهای لیست numbers به المانهای رشتهای تبدیل شدهاند و در لیست numberStrings ذخیره شدهاند.
- متد reduce: برای اعمال یک عملیات خاص بر روی تمامی المانهای یک لیست، میتوان از متد reduce استفاده کرد. به عنوان مثال:
List<int> numbers = [1, 2, 3, 4, 5];
int sum = numbers.reduce((value, element) => value + element);
در مثال بالا با استفاده از متد reduce، مجموع المانهای لیست numbers به دست آمده و در متغیر sum ذخیره شده است.
لیستها از ابزارهای بسیار قدرتمندی برای کار با دادهها در دارت هستند و با استفاده از متدها و عملیاتهای مختلف، میتوان به سادگی با آنها کار کرد.