DEV Community

Cover image for Dart Fundamentals: Variables
Roel Tombozafy
Roel Tombozafy

Posted on

Dart Fundamentals: Variables

Variables are the building blocks to know when you learn a new programming language. In today's article we are going to talk about variables in Dart.

Dart has built-in types like other programming language:

  • int for integers
  • double for floating numbers
  • boolean for boolean value
  • String for text

To declare a variable in Dart, we define the variable type followed by the variable name

int currentYear = 2023;
double pi = 3.14;
bool isAdult = true;
String name = "Lionel Messi"
Enter fullscreen mode Exit fullscreen mode

Type inference: var & dynamic

Although, you are not forced to specify the variable type thanks to a mechanism called "type inference". It means that Dart can infer (or simply guess) the type of the variable

var myAge = 27;
var country = "Madagascar"
Enter fullscreen mode Exit fullscreen mode

In the example above, Dart will assume that the variable myAge is an integer and the variable country is a string due to the presence of the double quotes. When declared with the var keyword, the type of the variable can't be changed throughout the execution of the program.

The dynamic keyword can also be used to declare a variable. The difference with var is that the type of the variable can change during the execution of the code.

dynamic myVar = "Hello"
print(myVar.runtimeType) // String 
myVar = 123
print(myVar.runtimeType) // int 
Enter fullscreen mode Exit fullscreen mode

The important thing to remember is:

  • var can't change the TYPE of the variable, but can change the VALUE of the variable later in code
  • dynamic can change the TYPE of the variable and can change the VALUE of the variable later in code
  • final can’t change TYPE of the variable, and can’t change VALUE of the variable later in code.

For example

var myVar = "Hello"
dynamic myDynamicVar = "Hello"
myVar = 123 // not possible
myDynamicVar = 123 // possible
Enter fullscreen mode Exit fullscreen mode

Note: If you state a var without intializing, it becomes a dynamic

var myVar;
myVar = "abc";
print(myVar.runtimeType) // String
myVar = 1245;
print(myVar) //1245
print(myVar.runtimeType) // int
Enter fullscreen mode Exit fullscreen mode

That's all for today's article. If you want to deep dive into the fundamentals of Dart, check out the official documentation.

Top comments (0)