Ключевое слово var
Ключевое слово var объявляет локальную переменную
и позволяет компилятору автоматически вывести её тип
на основе присвоенного значения. При объявлении
переменной через var необходимо сразу присвоить
ей значение, иначе тип вывести не получится. После
вывода типа переменная остаётся строго типизированной:
присвоить ей значение другого типа не получится.
Ключевое слово var можно использовать как
для примитивных типов, так и для коллекций, объектов
и пользовательских классов. Это удобно, когда тип
очевиден из правой части выражения и не хочется
дублировать его вручную.
Синтаксис
var name = value;
Пример
Давайте объявим переменную с числом через var
и выведем её значение и тип:
void main()
{
var num = 12345;
print(num);
print(num.runtimeType);
}
Результат выполнения кода:
12345
int
Пример
Давайте объявим строковую переменную через var
и выведем её значение и тип:
void main()
{
var str = 'abcde';
print(str);
print(str.runtimeType);
}
Результат выполнения кода:
abcde
String
Пример
Давайте объявим список через var
и выведем его значение и тип:
void main()
{
var list = [1, 2, 3, 4, 5];
print(list);
print(list.runtimeType);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
List<int>
Пример
После вывода типа переменная становится строго типизированной. Давайте попробуем присвоить ей значение другого типа:
void main()
{
var num = 12345;
num = 'abcde';
print(num);
}
Такой код не скомпилируется, так как переменная
num уже имеет тип int.
Пример
Если тип переменной заранее неизвестен, вместо
var используют dynamic. Давайте сравним
поведение двух переменных:
void main()
{
var a = 12345;
dynamic b = 12345;
b = 'abcde';
print(a);
print(b);
}
Результат выполнения кода:
12345
abcde