Dard. Tout ce que vous devez savoir sur les constantes


Les constantes ne sont pas seulement une version bizarre de finalvariables qui vous hanteront dans un rêve avec toutes les erreurs qui leur sont associées. Compile-timeles constantes sont un bon moyen d'augmenter les performances de votre application, sans créer plusieurs fois le même objet et, pour ainsi dire, «pré-créer» des objets au moment de la compilation.


const ou final?


, , . , , const final . .


void run() {
  const myConstNumber = 5;
  final myFinalNumber = 5;

  myConstNumber = 42; // 
  myFinalNumber = 42; // 
}

final, const , . , const .


class MyClass {
  final int myFinalField;
  const int myConstField; // 

  MyClass(this.myFinalField, this.myConstField);
}

, , final, const. , , (. ). ...



Dart . , "hello", , 3.14, , .


, .


void run() {
  const myList = [1, 2, 3];
  const myMap = {'one': 1};
  const mySet = {1, 2, 3};
}

: , if, spread , .


, const final , , . Dart , , . .



, , , . , .


void run() {
  final finalVariable = 123456;
  const constVariable = 123456;

  const notWorking = finalVariable; // 
  const working = constVariable;
}

, – , , , ...



Flutter const , , EdgeInsets, . - , .


const EdgeInsets.all(8), . , const , .

, const . : final .


class MyConstClass {
  final int field1;
  final List<String> field2;
  const MyConstClass(this.field1, this.field2);
}

void run() {
  //      
  const constVariable = 123456;
  const x = MyConstClass(constVariable, ['hello', 'there']);
}

, , const .


class MyWannabeConstClass {
  //  Future  const   
  final Future<int> field;
  // Dart  ,  ,  :
  const MyWannabeConstClass(this.field);
}

void run() {
  // Dart      const:
  const x = MyWannabeConstClass(Future.value(123)); // 
}

Dart , , , ""? , . const , . .


void run() {
  //  Future        
  final implicitNew = MyWannabeConstClass(Future.value(123));
  final explicitNew = new MyWannabeConstClass(Future.value(123));
}

const , , , Flutter .


, const final .


, new , const .


void run() {
  const implicitConst = MyConstClass(1);
  const explicitConst = const MyConstClass(1);
}

const , , , .


void run() {
  final regularVariable = const MyConstClass(1);
}

Conclusion


J'espère que ce guide a été en mesure de clarifier la signification des constconstructeurs et, en général, des constantes dans Dart. Essayez de l'utiliser dans la constmesure du possible et vous améliorerez les performances de vos applications ligne par ligne. Et vous savez comment cela se produit avec de petites améliorations - elles donnent un résultat global.


All Articles