Sobes.tech
Middle

Dart tilida const kalit so'zidan foydalanishning qanday usullari mavjud?

sobes.tech AI

AIdan javob

Dart tilida const kalit so'zi dasturlashda kompilatsiya vaqtida aniqlanadigan va ishga tushirilish vaqtida o'zgartirilmaydigan doimiy qiymatlarni yaratish uchun ishlatiladi.

Foydalanish usullari:

  1. O'zgaruvchi modifikatori sifatida: Kompilatsiya vaqtida doimiy bo'ladigan o'zgaruvchini e'lon qilish uchun ishlatiladi.

    const int speedOfLight = 299792458; // Doimiy qiymat
    
  2. Konstruktor modifikatori sifatida: const deb e'lon qilingan konstruktor, agar uning barcha maydonlari final yoki const bo'lsa, o'zgarmas sinflar nusxalarini yaratadi.

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Doimiy konstruktor
    }
    
    const origin = Point(0.0, 0.0); // Doimiy nusxa yaratish
    
  3. Doimiy to'plamlar yaratish uchun: Listlar, to'plamlar va xaritalar, kompilatsiya vaqtida doimiy bo'ladigan mazmun bilan yaratiladi.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Doimiy ro'yxat
    const Set<String> constants = {'pi', 'e', 'phi'}; // Doimiy to'plam
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Doimiy xarita
    
  4. Doimiy qiymat kutiladigan kontekstlarda: Masalan, Flutterda vidjetlar yaratishda, doimiy vidjetlar optimallashtirilishi mumkin.

    // Flutter kontekstida
    const Text('Hello, World!'); // Doimiy vidjet
    

final bilan farqi:

  • const kompilatsiya vaqtida ma'lum bo'lgan qiymatni belgilaydi.
  • final ishga tushirilish vaqtida bir marta tayinlanadigan va keyinchalik o'zgartirilmaydigan qiymatni belgilaydi.
Xususiyatlar const final
Initsializatsiya vaqti Kompilatsiya vaqtida Ishga tushirilish vaqtida (bir marta)
Qiymatning o'zgartirilmasligi O'zgarmas Bir marta tayinlangan, keyinchalik o'zgartirilmaydi
Sinflarga qo'llash const konstruktor bilan doimiy nusxa yaratadi Ob'ektga o'zgarmas referensiya yaratadi
To'plamlar bilan qo'llash O'zgarmas to'plam yaratadi, mazmuni o'zgarmas O'zgarmas referensiya yaratadi, mazmuni o'zgartirilishi mumkin