Dart Operatorlar (Amallar)

Operatorlar o’zgaruvchilar va qiymatlar ustida turli amallarni bajarish uchun ishlatiladi.

Operatorlar 5 ta turga bo’linadi :

  1. Arifmetik operatorlar
  2. Tayinlash (Belgilash) operatorlari
  3. Taqqoslash operatorlari
  4. Mantiqiy operatorlar
  5. Bitli (Bitwise) operatorlar
Operator – bu ma’lum bir vazifa bajarishga qaratilgan buyruq.

Arifmetik operatorlar

Biz bilgan matematik amallarni bajarish uchun arifmetik operatorlardan foydalaniladi.

void main() {
int x = 6, y = 8;
print(y / x); // bu kabi bo'lishda natija butun va kasr qismdan iborat
print(y ~/ x); // bu kabi bo'lishda esa faqat butun qism olinadi
print(y % x); // qoldiq bo'lish ya'ni qoldiq topiladi
}
>> 1.3333333333333333 >> 1 >> 2

Qolgan barcha arifmetik operatorlar ishlashi bilan o’zingiz bir tanishib chiqasiz.

Tayinlash operatorlari

O’zgaruvchilarga qiymat berish uchun tayinlash operatorlari foydalaniladi. Masalan, += qiymatni oshirish operatoridan foydalanib o’zgaruvchini qiymatini oshirishni bir misol orqali ko’rib o’taylik :

void main() {
int number = 8;
number += 5;
print(number);
}
>> 13

Taqqoslash operatorlari

Taqqoslash operatorlari ikkita qiymatni yoki o’zgaruvchilarni solishtirish uchun ishlatiladi. Taqqoslashda qaytariladigan qiymat 0 yoki 1, true (1) va false (0) degan ma’noni anglatadi. Bu biz ishlashimiz uchun juda foydali. Chunki kompyuterga berilgan buyruqlar shu tarzda ishlaydi.

void main() {
int x = 6, y = 8;
print("x == y | ${x == y}");
}
>> x == y | false

Mantiqiy operatorlar

Mantiqiy operatorlar yordamida rost yoki yolg’on qiymatlarni tekshiringiz mumkin. Mantiqiy operatorlar o’zgaruvchilar yoki qiymatlar orasidagi mantiqni aniqlash uchun ishlatiladi. Agarda matematika fanida siz dizyunksiya, konyunksiya va inkor mantiqiy amallari bilan ishlashni o’rgangan bo’lsangiz umuman qiynalmaysiz foydalanishda. Bu operatorlar qo’llanilganda natija doim true yoki false bo’ladi.

void main() {
int x = 6, y = 8;
var and = x < 5 && y < 10;
print(and);

var not = !(x < 5 && y < 10);
print(not);
}
>> false >> true

Bitli operatorlar

Sonlar ustida ikkilik sanoq sistemasi asnosida amallar bajarishda bitli operatorlardan foydalaniladi. Bitli operatorlar oddiy operatorlarga nisbatan ishlashi ~66% ga tezroqdir. Bitli operatorlar ishlashi Bul algebrasida asoslanadi.

Bitli va (&) operatori ishlashini qisqacha ko’rib o’tsak,

2 & 3 = 2, bunda sonlar avval ikkilik sanoq sistemasiga o’tkazib olinadi. 10 & 11 qilib keyin operator o’z vazifasini bajaradi. & – konyunksiya bo’lib, 1 & 1 = 1, 1 & 0 = 0 natija 10 bo’ladi va uni o’nlikka o’tkazilganda 2 chiqadi.

Operatorlar tuzilishiga ko’ra 2 ta turga bo’linadi : unar va binar.

Unar operatorlar bitta operanddan, binar operatorlar esa ikkita operanddan tashkil topadi.

x & y – misolini olsak, bunda x va y operandlar hisoblanadi. & esa operator va uning ikki tomonida ham operand borligi uchun binar operatorga kiradi. Unar operatorlarda chap tomonida hech qanday operand bo’lmaydi. Masalan, !x ifodasi.

Inkrement va dekrement amallari

O’zgaruvchi qiymatini o’zgartirish uchun ishlatilovchi amallar hisoblanadi. Hamda bular 2 turga bo’linadi : postfiks (keyin) va prefiks (oldin).

Bu amallar ishlashdagi farqlar qandayligini ko’rib ketsak,

// Postfiks inkrement
void main() {
var x = 5;
var y = x++;
print("$x $y");
}
>> 6 5

Birinchi x qiymati y ga o’zlashtiriladi va keyin x ning qiymati 1 ga ortadi.

// Prefiks inkrement
void main() {
var x = 5;
var y = ++x;
print("$x $y");
}
>> 6 6

Birinchi x ning qiymati 1 ga ortadi va keyin x qiymati y ga o’zlashtiriladi.

// Postfiks dekrement
void main() {
var x = 5;
var y = x--;
print("$x $y");
}
>> 4 5

Birinchi x qiymati y ga o’zlashtiriladi va x ning qiymati 1 ga kamayadi.

// Prefiks dekrement
void main() {
var x = 5;
var y = --x;
print("$x $y");
}
>> 4 4

Birinchi x ning qiymati 1 ga kamayadi va keyin x qiymati y ga o’zlashtiriladi.