/ Жагсаалт /
list бол нэг төрлийн олон өгөгдлийг нэг дор төвлөрүүлэн дараалалд оруулан хадгалдаг collection төрлийн object юм.
Дараах зургийг ажиглавал 6 элемент бүхий жагсаалт харагдаж байна. Эдгээр элемент бүр өөрийн гэсэн дугаартай байна. Энэ дугаар нь тухайн элементийг жагсаалтын хаана байршиж байгааг заадаг дугаар гэж ойлгож болно. index гэж нэрлэнэ.
index дугаар ямагт 0-ээс эхэлдэгийг анхаарах хэрэгтэй.
list үүсгэх:
Дараах байдлаар шинээр list үүсгэж болно:
var dessert = ['cookies', 'cupcakes', 'donuts', 'pie'];
Ингэхдээ автоматаар index-ийг дотроо үүсгээсэн байдаг.
Мөн хоосон list үүсгэх боломжтой байдаг. Харин ингэхдээ төрөлийг
List
List < String > snacks = [];
Дээрх жишээнд дурдсан List нь class-ын нэр юм. Харин <> нь тухайн жагсаалтаад оролцох элементүүдийн төрлийг зааж өгдөг хэсэг юм. Үүнийг generic types гэж нэрлэнэ.
Хоосон list үүсгэх бас нэг арга бол:
var snacks = < String >[];
list хэвлэх:
list-ийг энгийн хувьсагч хэвлэдэгтэй адил аргаар хэвлэдэг:
desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
print(desserts);
Элемент сонгох:
list-ийн аль нэг элементийг сонгохдоо index дугаарыг ашиглана.
desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
final secondElement = desserts[1];
print(secondElement);
Ингэхдээ индеĸсийн дугаарлалт 0-ээс эхэлдэгийг мартаж болохгүй.
Хэрэв танд list-ийн аль нэг элементийн индеĸс хэрэг болсон бол дараах аргыг хэрэглэнэ:
desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
final index = desserts.indexOf('pie');
final value = desserts[index];
print('The value at index $index is $value.');
Ажиллуулж үзвэл pie утгатай элементийн индеĸс 3 байгааг харж болно.
Элементэд утга оногдуулах, солих:
desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
desserts[1] = 'cake';
print(desserts);
Ард нь элемент нэмэх:
list дээр шинээр элемент нэмэхдээ add метод ашигладаг.
desserts.add('brownies');
print(desserts);
Шинэ элемент хамгийн ард нь нэмэгддэг.
Дунд нь элемент нэмэх:
Харин дунд нь нэмэхээр бол insert ашиглана.
desserts.insert(1, 'ice cream');
print(desserts);
Элемент устгах:
Элементийг утгаар нь хайж устгахдаа.
dessert.remove('cake');
print(desserts);
Элементийг индеĸсээр нь хайж устгахдаа:
dessert.removeAt(0);
print(desserts);
Эрэмбэлэх:
Жагсаалтын гишүүдийг эрэмблэхдээ sort метод ашиглана..
final integers = [32, 73, 2, 343, 7, 10, 1];
integers.sort();
print(integers);
Эрэмбэлсний үр дүнд та жагсаалтын хамгийн их эсвэл байга утгатай гишүүнийг олох боломжтой болно:
final smallest = integers[0];
print(smallest);
final lastIndex = integers.length - 1;
final largest = integers[lastIndex];
print(largest);
sort методыг теĸст төрөл дээр ч ашиглаж болно:
final animals = ['zebra', 'dog', 'alligator', 'cat'];
animals.sort();
print(animals);
sort метод нь теĸст төрлийн элементүүдийг цагаан толгойн дарааллаар эрэмбэлж, тоонуудыг багаас ихрүү эрэмбэлдэг.
list зарлахдаа var түлхүүр үг ашиглан үүсгэсэн бол дараах үйлдлийг хийх боломжтой:
var desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
desserts = [];
desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
Харин final түлхүүр үг ашигласан бол боломжгүй. Гэхдээ remove, add методууд бүгд ажиллана:
final desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
desserts = []; // ажиллахгүй
desserts = ['cookies', 'cupcakes', 'donuts', 'pie']; // ажиллахгүй
desserts.remove('cookies'); // OK
desserts.remove('cupcakes'); // OK
desserts.add('ice cream'); // OK
const хувьсагч
const түлхүүр үг ашиглаж үүсгэсэн жагсаалтын гишүүдийг ч өөрчлөх боломжгүй, шинэ утга ч оногдуулж болдоггүй. Доорх ĸодыг ажиллуулбал ĸомпьютер гацах аюултай.
const integers = [32, 73, 2, 343, 7, 10, 1];
integers[3] = 16; // ингэж болохгүй
Const List Literals:
Жагсаалт бүхий хувьсагчийг const болгох хэрэггүй ч жагсаалтын дотор агуулагдаж байгаа элементүүдийг const болгож болдог.
final desserts = const ['cookies', 'cupcakes', 'donuts', 'pie'];
class үүсгэхдээ бид өмнө final түлхүүр үг ашиглаж байсан:
class Desserts {
Desserts([this.desserts = const ['cookies']]);
final List< String > desserts;
}
dessert-д шинэ гишүүн нэмж, хасч болох ч анхны гишүүнийг const гэж зарлан огт өөрчилж болохгүй болгосон байна.
List properties:
List-ийн өөрт нь суугдсан методуудыг properties гэх ба дараах жишээндээр авч үзье:
const drinks = ['water', 'milk', 'juice', 'soda'];
эхний болон сүүлийн элементийг сонгох / Accessing First and Last Elements
Эхний болон сүүлийн гишүүнийг сонгохдоо first, last метод ашиглаж болно:
drinks.first // water
drinks.last // soda
Дараах аргаар бас эхний болон сүүлийн гишүүнийг олж байна:
drinks[0] // water
drinks[drinks.length - 1] // soda
Жагсаалт хоосон эсэхийг шалгах / Checking If a List Contains Any Elements
drinks.isEmpty // false
drinks.isNotEmpty // true
Дараах аргаар бас хоосон үгүйг шалгаж болж байна:
drinks.length == 0 // false
drinks.length > 0 // true
for loop:
const desserts = ['cookies', 'cupcakes', 'donuts', 'pie'];
for ( int i = 0; i < desserts.length; i++) {
final item = dessert[i];
print('I like $item.');
}
"i < desserts.length" нөхцлийг сайн анзаараарай.
for-in loop:
loop хийх хамгийн амар арга бол fot-in юм.
for (final item in desserts) {
print('I also like $item!');
}
Flutter framework нь өвөрмөц шинж чанараар нь Dart-ыг сонгож анх хийгдсэн байдаг. Эргээд Flutter нь Дартын хөгжилд мөн нөлөөлсөн. Үүнийг дараах нэмэлтүүдээс харж болно.
Spread Operator ( ... )
Жагсаалтуудыг хооронд нь нэмэх хэд хэдэн арга бий. Дараах жагсаалтууд байлаа гэж бодъе.
final desserts = ['donuts'];
const pastries = ['cookies', 'croissants'];
const candy = ['Junior Mints', 'Twizzlers', 'M&Ms'];
Эхнийх дээр сүүлийн 2-ыг нэмэх энгийн арга:
desserts.addAll(pastries);
desserts.addAll(candy);
print(desserts);
Харин spread operator ашиглавал:
final desserts = ['donuts', ...pastries, ...candy];
Collection if
list-ийн аль нэг гишүүнийг нөхцөлтэйгээр байлгаж эсвэл алга болгож болно:
const peanutAllergy = true;
const sensitiveCandy = [
'Junior Mints',
'Twizzlers',
if (!peanutAllergy) 'Reese',
];
print(sensitiveCandy);
Collection for
list-ийн гишүүдийг давтамж ашиглан үүсгэж болно:
onst deserts = ['gobi', 'sahara', 'arctic'];
const bigDeserts = [
'ARABAN',
'Twizzlers',
for(var desert in deserts) desert.toUpperCase(),
];
print(bigDeserts);
Тухайн жагсаалтыг өөрийг нь null болгох:
List< int >? nullableList = [2, 4, 3, 7];
nullableList = null;
Тухайн жагсаалтыг null утгатай гишүүн агуулах боломжтой болгох:
List< int? > nullableElements = [2, 4, null, 3, 7];
Тухайн жагсаалтыг өөрийг нь null болгох мөн null утгатай гишүүн агуулах боломжтой болгох:
List< int? >? nullableListAndElements = [2, 4, null, 3, 7];
nullableListAndElements = null;