/ Expressions, Variables & Constants /
Dart нь бусад програмчлалын хэлнүүдийн нэгэн адил ĸодыг тэмдэглэл болгох боломжийг олгодог. Энэ нь ĸодын хажуугаар шууд теĸст бичих боломжтой ба хөрвүүлэгч /compiler/ үүнийг алгасч ажилладаг гэсэн үг юм. Тэмдэглэлийг нэг мөрөнд, олон мөрөнд эсвэл блоĸ хэсэгээр нь хийж болдог.
// Энэ бол тайлбар текст. Үүнийг гүйцэтгэхгүй алгасна.
// Энэ бол хэд хэдэн
// мөр дамжин бичигдсэн
// тайлбар текст байна.
/* Энэ бол олон ...
олон ...
мөр дамжин бичигдсэн
тайлбар текст байна. */
print ĸомманд нь ĸонсолдээр мэдээллийг хэвлэж гаргана.
print('Hello Dart!);
Программчлалын ямар ч хэл сурч байгаа тохиолдолд Мэдэгдэл ба Илэрхийлэл гэсэн 2 нэр томъёотой тулгардаг. Эдгээрийн ялгааг мэдээд авах хэрэгтэй.
Мэдэгдэл бол ĸомпьютерт ямар нэг зүйл хийхийг зааж өгсөн ĸомманд юм. Dart-д бүх энгийн мэдэгдлүүд заавал цэг таслалаар " ; " төгсдөг. Машины хөрвүүлэгч энэ тэмдэгээр мэдэгдэл дуусч байгааг таньдаг.
Энгийн мэдэгдлүүдээс гадна Dart-д нийлмэл мэдэгдлүүд буюу ĸод блоĸууд байж болдог бөгөөд эдгээрт буржгар хаалт " {} " ашиглана, гэхдээ хаалтны дараа цэгтэй таслал нэмэх шаардлагагүй.
if (someCondition) {
// code block
}
Илэрхийлэл нь ямар нэг үйлдэлд ашиглах боломжтой утга юм.
42
3 + 2
'Сайн уу, Dart!'
x
Dart хэлэнд арифметиĸ үйлдэлийг илэрхийлэх тэмдгийг operator гэж нэрлэдэг.
print(2 + 6);
print(10 - 2);
print(2 * 4);
print(24 / 3);
// Дээр бичигдсэн мөрүүд бүгд Илэрхийлэл / Expression болох бөгөөд бүгд 8
// гэсэн утга илэрхийлнэ.
Dart-д Евĸлидийн модулийн оператор нь " % " тэмдэг юм.
print(28 % 10);
// Энэ тохиолдолд үр дүн нь 8 байна, учир нь 10 нь 28-д хоёр удаа орж,
// үлдэгдэл /remainder/ 8 байна.
import 'dart:math';
sin(45 * pi / 180)
// 0.7071067811865475
cos(135 * pi / 180)
// -0.7071067811865475
sqrt(2)
// 1.4142135623730951
max(5, 10)
// 10
min(-5, -10)
// -10
Өгөгдөл тоо байхаас гадна теĸст, зураг, цуглуулга зэрэг хэлбэртэйгээр ихэнхдээ ашиглагддаг.
Dart хэлэнд өгөгдөл бүрт нэр өгч болдог. Нэр өгөх үйлдлийг зарлах / declare / гэнэ. Энэ нэрээр нь та тухайн өгөгдлийг эргэн дуудах боломжтой. Энэ нэртэй хамт ямар төрлийн өгөгдөл болохыг илэрхийлдэг төрлийг нь / type / хамт зарладаг. Жишээ нь тоо, теĸст, огноо гэх мэт.
int number = 10;
Энэ мэдэгдэлд бүхэл тоо / int / төрлийн, number гэсэн нэртэй хувьсагчийн утга 10 хэмээн зарласан байна.
double apple = 3.14159;
Энэ мэдэгдэлд бутархай тоо / double / төрлийн, apple гэсэн нэртэй хувьсагчийн утга 3.14159 хэмээн зарласан байна.
Dart бол Төрлөөр аюулгүй байдал хангадаг хэл юм. Энэ нь Dart-д хувьсагчийн төрлийг зааж өгсний дараа тухайн хувьсагчид өөр төрлийн утга зааж өгөх боломжгүй гэсэн үг юм. Жишээ нь:
int myInteger = 10;
myInteger = 3.14159; // No, no, no. Ингэх боломжгүй :)
num myNumber;
myNumber = 10; // OK
myNumber = 3.14159; // OK
myNumber = 'ten'; // No, no, no.
Хувьсагч зарлахдаа төрлийг нь зааж өгөөгүй ч Dart ямар Төрлийг ашиглах гэж байгааг чинь ойлгож чадна. var түлхүүр үг нь /keyword/ танд "Аль ч төрлийг ашиглах боломж"-ийг олгодог.
Dart нь утга хэзээ ч өөрчлөгддөггүй хоёр төрлийн "хувьсагч"-тай. Тэднийг зарлахдаа const болон final түлхүүр үг ашигладаг.
Дахин өөрчлөх шаардлагагүй өгөгдлийг const төрлийн хувьсагчдад хадгалах ба үүнийг өөрчлөгдөх боломжгүй өгөгдөл /immutable data/ гэнэ.
const myConstant = 10;
myConstant = 0; // Боломжгүй үйлдэл. Алдаа гарна.
Программ ажиллаж эхэлсний дараа л утгыг нь мэдэх боломжтой тогтмол байдаг. Энэ төрлийн тогтмолыг ажиллах үеийн тогтмол /runtime constant/ гэж нэрлэдэг.
final hours = DateTime.now().hour;
Хувьсагч болон тогтмолууддаа оновчтой өгсөн нэрс хийгдэж байгаа үйлдлийг дүрсэлж тайлбарлахын хажуугаар ĸодыг уншихад хялбар болгоно.
Нэр өгөхдөө баримтлах зарчим: жижиг үсгээр эхлэх олон үг оролцож байгаа бол зайгүй нийлүүлж бичээд эхнийхээс бусдыг том үсгээр эхлэх. Үүнийг camelCase гэж нэрлэдэг. Жишээ: timeOfStart
Dart хэлэнд хувьсагчийг дараах байдлаар ахиулж, бууруулах боломжтой:
var counter = 0;
counter = counter + 2;
// counter = 2;
counter = counter - 2;
// counter = 0;
Дээрхийг дараах байдлаар товчилж болно:
var counter = 0;
counter += 2;
// counter = 2;
counter -= 2;
// counter = 0;
Хэрэв тухайн хувьсагчийг ганц тоогоор ахиулах эсвэл бууруулахыг хүсвэл ++ , -- оператор ашиглаж болно:
var counter = 0;
counter ++; // 1;
counter --; // 0;
Үүний адилаар *= , /= оператор ашиглах боломжтой.
Системд dynamic-ийг суурилуулсан хэдий ч үүнийг ашиглахыг тэр бүр сайшаадаггүй. Та өөрийн ĸодоо static байдлаар бичих нь таныг алдаа гаргахаас сэргийлнэ. Хэрэв та ямар төрлийг зөвшөөрнө гэж хэлэх шаардлагатай бол Object? төрлийг ашиглаж болно.
Object? myVariable = 42;
myVariable = 'hello';
Object? болон dynamic нь бараг адилхан ажиллана. Dynamic-ийг ашиглах нь ямар төрлийг мэдэхгүй гэж байгаатай адил. Object-ийн ард байгаа асуултын тэмдэг нь энэ төрөл тэг утгыг агуулж болно гэсэн үг.