Feature var dynamic
Type inference Yes, type is inferred at compile time based on the assigned value. No, type is determined at runtime.
Type safety Strongly typed after initial assignment. Weakly typed, can change type during runtime.
Use case When the type is known or can be inferred, but you want to avoid specifying it explicitly. When the type is not known at compile time, or when you want to allow for type changes.
Example (initial assignment) var name = "Alice"; // Inferred as String dynamic name = "Alice"; // Treated as dynamic
Example (changing type) name = 42; // Error: Type mismatch name = 42; // Allowed, type changed to int
Compile-time checks Yes, type is checked at compile time. No, type is not checked at compile time.
Runtime flexibility No, type cannot change after the initial assignment. Yes, type can change at runtime.