Dardo. Todo lo que necesitas saber sobre las constantes.


Las constantes no son solo una versión extraña de finalvariables que te perseguirán en un sueño con todos los errores asociados con ellas. Compile-timeLas constantes son una buena manera de mejorar el rendimiento de su aplicación, sin crear el mismo objeto varias veces, y por así decirlo, "crear previamente" objetos en tiempo de compilación.


const o 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);
}

Conclusión


Esperemos que esta guía haya podido aclarar el significado de los constconstructores y, en general, las constantes en Dart. Intente usarlo constcuando sea posible, y realizará pequeñas mejoras de rendimiento en sus aplicaciones línea por línea. Y ya sabe cómo sucede con pequeñas mejoras: dan un resultado general.


All Articles