Sobes.tech
Middle

როგორ შეიძლება გამოიყენოთ საკვანძო სიტყვა const Dart-ში?

sobes.tech AI

პასუხი AI-სგან

Dart тилиндеги 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да виджетлар яратишда, мустаҳкам виджетлар оптимизацияланиши мумкин.

    // Flutterда
    const Text('Hello, World!'); // Мустаҳкам виджет
    

final-дан фарқлари:

  • const қийматни, компиляция вақтида маълум бўлган қийматни белгилайди.
  • final қийматни, фақат бир марта ишга туширилганда белгиланади ва кейин ўзгартирилмайди.
Хусусиятлар const final
Инициализация вақти Компиляция вақти Ишга тушириш вақти (бир марта)
Ўзгартириш имконияти Ўзгартирилмайди Бир марта белгиланган, кейин ўзгартирилмайди
Нусхага қўлланиш Мустаҳкам нусха яратади (агар конструктор const) Нақлингизга ўзгартириш мумкин бўлмаган объект яратади
Коллекциялар учун қўлланиш Ўзгартирилмайдиган коллекция яратади, мазмуни ўзгартирмайди Ўзгартирилмайдиган коллекцияга ишора қилади (мазмуни ўзгартирилиши мумкин)