Sobes.tech
Middle

Tell us about constant constructors in Flutter.

sobes.tech AI

Answer from AI

A constant constructor allows creating an object that the compiler can evaluate at compile time and reuse. This improves performance and reduces memory consumption.

Key features:

  • Marked with the const keyword.
  • All class fields defined by such a constructor must be final.
  • All constructor arguments must also be constant or have default constant values.
  • When creating an instance with such a constructor, the const keyword is used.

Example:

class Point {
  final double x;
  final double y;

  const Point(this.x, this.y); // Constant constructor
}

void main() {
  // These two objects will represent the same instance in memory
  const p1 = Point(1.0, 2.0);
  const p2 = Point(1.0, 2.0);

  // This object will be a new instance
  final p3 = Point(1.0, 2.0);

  print(identical(p1, p2)); // Outputs: true
  print(identical(p1, p3)); // Outputs: false
}

Advantages of using const constructors:

  • Performance: Objects are created only once and reused.
  • Memory reduction: Decreases the number of objects created.
  • Immutability: Objects created with const constructors are immutable.

Restrictions:

  • The class must not have a factory constructor.
  • The class cannot contain mutable fields.

Constant constructors are often used to create immutable widgets in Flutter, such as Text, Icon, Padding, SizedBox, which is a good practice for optimizing user interface performance.

Tell us about constant constructors in Flutter… - sobes.tech