Operator Dart

Dart mendukung semua operator yang tercantum dalam tabel di bawah, tabel diurutkan berdasarkan prioritas dari tertinggi ke terendah

KategoriOperatorAsosiatifitas
Operator unary postfixexpr++ expr-- () [] ?[] . ?. !Tidak ada
Operator unary prefix- expr ! expr ~ expr ++ expr -- expr await exprTidak ada
Perkalian dan pembagian* / % ~/Kiri
Penjumlahan dan pengurangan+ -Kiri
Pergeseran bit<< >> >>>Kiri
Bitwise AND&Kiri
Bitwise XOR^Kiri
Bitwise OR|Kiri
Relasional dan pengecekan tipe>= > <= < as is is!Tidak ada
Pengecekan kesamaan== !=Tidak ada
Logika AND&&Kiri
Logika OR||Kiri
Operator penggabungan null??Kiri
Operator ternary bersyaratexpr1 ? expr2 : expr3Kanan
Operator kaskade.. ?..Kiri
Operator penugasan= *= /= += -= &= ^= dll.Kanan
Operator spread (lihat catatan)... ...?Tidak ada

Gunakan operator di atas bersama operand untuk membentuk ekspresi perhitungan

Contoh sederhana:

a++
a + b
a = b
a == b
c ? a : b
a is T

Berikut contoh lengkap:

void main() {
  // 1. Postfix increment a++
  int a = 10;
  print("1. Postfix increment a++");
  print("Sebelum increment a = $a");
  int temp = a++; // Ambil nilai dulu, baru tambah satu
  print("temp (nilai yang diambil) = $temp");
  print("Setelah increment a = $a\n");

  // 2. Ekspresi penjumlahan a + b
  int b = 20;
  int sum = a + b;
  print("2. Penjumlahan a + b");
  print("$a + $b = $sum\n");

  // 3. Ekspresi penugasan a = b
  a = b;
  print("3. Penugasan a = b");
  print("Setelah penugasan a = $a\n");

  // 4. Pengecekan sama a == b
  bool isEqual = a == b;
  print("4. Pengecekan sama a == b");
  print("Hasil a == b: $isEqual\n");

  // 5. Ekspresi ternary c ? a : b
  int c = 5;
  String result = c > 0 ? "c bilangan positif" : "c bilangan negatif atau nol";
  print("5. Operator ternary c ? a : b");
  print("Cek c>0: $result\n");

  // 6. Pengecekan tipe a is T
  dynamic testVal = 100;
  print("6. Pengecekan tipe a is T");
  print("testVal is int: ${testVal is int}");
  print("testVal is String: ${testVal is String}");
}
Code language: Dart (dart)

Salin kode di atas lalu jalankan dengan perintah: dart run

Aturan inti prioritas operator

1. Logika urutan prioritas

Tabel operator prioritas menurun dari atas ke bawah: operator baris atas memiliki prioritas lebih tinggi dan dieksekusi duluan.

Contoh tanda > berarti “prioritas lebih tinggi”, bukan perbandingan nilai.

Urutan eksekusi: modulus % > pengecekan sama == > logika AND &&

Pemecahan eksekusi ekspresi n % i == 0 && d % i == 0:

  1. Pertama jalankan n % i, d % i (% prioritas tertinggi)
  2. Kemudian dua perbandingan ==
  3. Terakhir jalankan logika AND &&
2 Fungsi tanda kurung

Tanda kurung ((n % i == 0) && (d % i == 0)) hanya meningkatkan keterbacaan kode, tidak mengubah urutan eksekusi asli;

Versi tanpa kurung n % i == 0 && d % i == 0 berjalan berdasarkan prioritas bawaan, kedua kode memiliki logika dan hasil yang sama persis;

Catatan tambahan: Tanda kurung hanya mengubah urutan eksekusi jika perlu melanggar prioritas default.

void main() {
  int n = 10;
  int d = 20;
  int i = 2;

  // Cara 1: pakai kurung, lebih mudah dibaca
  if ((n % i == 0) && (d % i == 0)) {
    print("Cara 1: dapat dibagi habis");
  }

  // Cara 2: tanpa kurung, pakai prioritas bawaan, hasil sama persis
  if (n % i == 0 && d % i == 0) {
    print("Cara 2: dapat dibagi habis");
  }
}

Hasil eksekusi:

Cara 1: dapat dibagi habis
Cara 2: dapat dibagi habis

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *