Sobes.tech
Middle

Чӣ гуна истифода бурдани калимаи калидии const дар Dart?

sobes.tech AI

Ҷавоб аз AI

Калидвожа const дар дар истифода мешавад барои эҷоди арзишҳои доимӣ, ки дар вақти компилятсия муайян мешаванд ва дар вақти иҷрои барнома тағйирнопазир мебошанд.

Роҳҳои истифода:

  1. Ҳамчун модификатори тағйирёбанда: Барои эълон кардани тағйирёбанда, ки арзиши он дар вақти компилятсия доимӣ аст.

    const int speedOfLight = 299792458; // Арзиши доимӣ
    
  2. Ҳамчун модификатори конструктор: Конструктор, ки ҳамчун const эълон шудааст, экземплярҳои ғайрифаъолро месозад, агар ҳамаи майдонҳои он ниҳоӣ (final) ё доимӣ (const) бошанд.

    class Point {
      final double x;
      final double y;
    
      const Point(this.x, this.y); // Конструктори доимӣ
    }
    
    const origin = Point(0.0, 0.0); // Эҷоди экземпляри доимӣ
    
  3. Барои эҷоди маҷмӯаҳои доимӣ: Барои эҷоди рӯйхатҳо, маҷмӯаҳо ва харитҳо, ки мундариҷаашон дар вақти компилятсия доимӣ мебошанд.

    const List<int> primeNumbers = [2, 3, 5, 7, 11]; // Рӯйхати доимӣ
    const Set<String> constants = {'pi', 'e', 'phi'}; // Маҷмӯаи доимӣ
    const Map<String, double> mathConstants = {
      'pi': 3.14159,
      'e': 2.71828
    }; // Харитаи доимӣ
    
  4. Дар контекстҳое, ки интизор меравад арзиши доимӣ бошад: Масалан, дар сохтани варджетҳо дар Flutter, ки варджетҳои доимӣ метавонанд оптимизатсия шаванд.

    // Дар контексти Flutter
    const Text('Hello, World!'); // Варджети доимӣ
    

Тафовутҳо бо final:

  • const арзишро муайян мекунад, ки дар вақти компилятсия маълум аст.
  • final арзишро муайян мекунад, ки танҳо як бор дар вақти иҷрои барнома дода мешавад ва пас аз он тағйирнопазир аст.
Хусусиятҳо const final
Вақти инициализатсия Вақти компилятсия Вақти иҷрои (як бор)
Тағйирнопазирии арзиш Нагузошта Як бор дода мешавад, пас тағйирнопазир аст
Муштарак барои экземплярҳо Эҷод мекунад экземпляри доимӣ (агар конструктор const бошад) Эҷод мекунад истинод ғайрифаъол ба объект
Муштарак барои коллектсияҳо Эҷод мекунад коллектсияи ғайрифаъол бо мундариҷаи ғайрифаъол Эҷод мекунад истинод ғайрифаъол ба коллектсия (мундариҷа метавонад тағйирёбад)