Const Constructors
Const Constructors
About
- Const constructors create compile-time constants.
- Produce canonicalized instances.
- Require immutable objects.
- Enable performance optimizations.
Main Topics
-
Basic Const Constructor
- **Definition
:
const` keyword. - Example:
class Point { final int x, y; const Point(this.x, this.y); }
- **Definition
-
Canonicalization
- **Definition`: Single instance per values.
- Example:
const p1 = Point(1,2); const p2 = Point(1,2); print(identical(p1, p2)); // true
-
Immutable Requirements
- **Definition
: All fields must be
final`. - Example:
class Circle { final double radius; const Circle(this.radius); }
- **Definition
-
Performance Benefits
- **Definition`: Compile-time evaluation.
- Example:
const defaultPoint = Point(0,0); // No runtime cost
How to Use
- **Declare
: Mark constructor
const` - **Instantiate
: Use
const` keyword - **Fields`: Must be final
- **Parameters`: Only constant expressions
How It Works
- **Compile-time`: Evaluated during compilation
- **Canonical`: Single instance per unique values
- **Immutable`: State cannot change
Example Session:
void main() {
const origin = Point(0,0); // Compile-time constant
const sameOrigin = Point(0,0); // Same instance
}
Conclusion
Const constructors enable true compile-time constants in Dart, providing memory efficiency and performance benefits for immutable value objects throughout application code.