Type Inference with 'var'
Part of the Fundamentals section of Coddy's Dart journey — lesson 10 of 94.
In Dart, var enables type inference, where Dart automatically determines variable types from assigned values.
void main() {
var name = 'Dart Programmer';
print(name);
}Dart infers name as String. It works with other types too:
void main() {
var age = 25; // Inferred as int
var price = 19.99; // Inferred as double
var isAvailable = true; // Inferred as bool
print(age); // Outputs: 25
print(price); // Outputs: 19.99
print(isAvailable); // Outputs: true
}Challenge
BeginnerCreate a Dart program that demonstrates type inference with the var keyword:
- Declare a variable named
nameusingvarand assign it the string value"Dart" - Declare a variable named
yearusingvarand assign it the integer value2011 - Declare a variable named
versionusingvarand assign it the double value2.19 - Declare a variable named
isStronglyTypedusingvarand assign it the boolean valuetrue - Print each variable with a descriptive label in the following format:
Language: Dart Created in: 2011 Current version: 2.19 Is strongly typed: true
Your output must match this exact format.
Cheat sheet
Use var for type inference - Dart automatically determines variable types from assigned values:
var name = 'Dart Programmer'; // Inferred as String
var age = 25; // Inferred as int
var price = 19.99; // Inferred as double
var isAvailable = true; // Inferred as boolTry it yourself
void main() {
// Declare your variables using var
var name = ?;
var year = ?;
var version = ?;
var isStronglyTyped = ?;
// Print the variables with labels
print("Language: " + name);
print("Created in: " + year.toString());
print("Current version: " + version.toString());
print("Is strongly typed: " + isStronglyTyped.toString());
}This lesson includes a short quiz. Start the lesson to answer it and track your progress.
All lessons in Fundamentals
4Operators Part 2
Comparison OperatorsLogical ANDLogical ORLogical NOTType Test OperatorsRecap - Making Comparisons7Working with Strings
String ConcatenationString InterpolationMulti-line StringsString PropertiesBasic String Methods10Collections - Maps Basics
What are Maps?Creating a MapAccessing Values by KeyKey-Value PairsGetting Map SizeGetting KeysGetting ValuesChecking if a Key Exists13Null Safety In Depth
Understanding NullNullable TypesNon-Nullable TypesNull Assertion OperatorLate InitializationRecap - Handling Null Safely16Fundamentals Challenges
Challenge: List of calculationChallenge: Sum of numbersChallenge: Find product2Variables and Basic Data Types
What are Variables?StringsIntegers (int)Doubles (double)Booleans (bool)Type Inference with 'var'Final VariablesConstant VariablesNaming ConventionsBasic Null SafetyRecap - Declaring Variables8Control Flow - Loops
The 'for' LoopThe 'while' LoopThe 'do-while' LoopUsing 'break' in LoopsUsing 'continue' in LoopsRecap - Repeating Code3Operators Part 1
Arithmetic OperatorsInteger DivisionModulo OperatorIncrement and DecrementAssignment ShortcutsRecap - Simple Calculations6Control Flow - Decision Making
The 'if' StatementThe 'else' StatementThe 'else if' StatementRecap - Simple DecisionsNested 'if' StatementsThe 'switch' Statement9Collections - Lists Basics
What are Lists?Creating a ListAccessing by IndexGetting List LengthAdding ElementsRemoving ElementsChecking if a List is EmptyIterating Over a List12Functions Advanced
Optional Positional ParametersNamed ParametersRequired Named ParametersDefault Parameter ValuesRecap - Function Parameters15Project: Simple Calculator
Setting UpDeclaring Number