Программирование дротиков - переменные

Переменная - это «именованное пространство в памяти», в котором хранятся значения. Другими словами, он действует как контейнер для значений в программе. Имена переменных называются идентификаторами. Ниже приведены правила именования идентификатора -

  • Идентификаторы не могут быть ключевыми словами.

  • Идентификаторы могут содержать буквы и цифры.

  • Идентификаторы не могут содержать пробелы и специальные символы, за исключением подчеркивания (_) и знака доллара ($).

  • Имена переменных не могут начинаться с цифры.

Синтаксис типа

Перед использованием переменная должна быть объявлена. Дарт использует ключевое слово var, чтобы добиться того же. Синтаксис объявления переменной приведен ниже -

var name = 'Smith';

Все переменные в dart хранят ссылку на значение, а не значение. Переменная с именем name содержит ссылку на объект String со значением «Smith».

Дарт поддерживает type-checkingпутем добавления к имени переменной префикса типа данных. Проверка типов гарантирует, что переменная содержит только данные, относящиеся к определенному типу данных. Синтаксис для этого же приведен ниже -

String name = 'Smith'; 
int num = 10;

Рассмотрим следующий пример -

void main() { 
   String name = 1; 
}

Приведенный выше фрагмент приведет к предупреждению, поскольку значение, присвоенное переменной, не соответствует типу данных переменной.

Вывод

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'

Все неинициализированные переменные имеют начальное значение null. Это потому, что Дарт рассматривает все значения как объекты. Следующий пример иллюстрирует то же самое -

void main() { 
   int num; 
   print(num); 
}

Вывод

Null

Ключевое слово dynamic

Переменные, объявленные без статического типа, неявно объявляются как динамические. Переменные также можно объявлять с помощью ключевого слова dynamic вместо ключевого слова var.

Следующий пример иллюстрирует то же самое.

void main() { 
   dynamic x = "tom"; 
   print(x);  
}

Вывод

tom

Финал и Конст

В final а также constключевое слово используются для объявления констант. Dart предотвращает изменение значений переменной, объявленной с использованием ключевого слова final или const. Эти ключевые слова могут использоваться вместе с типом данных переменной или вместоvar ключевое слово.

В constключевое слово используется для представления константы времени компиляции. Переменные, объявленные с использованиемconst ключевое слово являются неявно окончательными.

Синтаксис: последнее ключевое слово

final variable_name

ИЛИ

final data_type  variable_name

Синтаксис: ключевое слово const

const variable_name

ИЛИ

const data_type variable_name

Пример - последнее ключевое слово

void main() { 
   final val1 = 12; 
   print(val1); 
}

Вывод

12

Пример - ключевое слово const

void main() { 
   const pi = 3.14; 
   const area = pi*12*12; 
   print("The output is ${area}"); 
}

В приведенном выше примере объявляются две константы, pi а также area, с использованием constключевое слово. Вarea значение переменной - это константа времени компиляции.

Вывод

The output is 452.15999999999997

Note - Только constпеременные могут использоваться для вычисления постоянной времени компиляции. Константы времени компиляции - это константы, значения которых будут определены во время компиляции.

пример

Dart выдает исключение, если предпринимается попытка изменить переменные, объявленные с finalили ключевое слово const. Пример, приведенный ниже, иллюстрирует то же самое -

void main() { 
   final v1 = 12; 
   const v2 = 13; 
   v2 = 12; 
}

Приведенный выше код вызовет следующую ошибку: output -

Unhandled exception: 
cannot assign to final variable 'v2='.  
NoSuchMethodError: cannot assign to final variable 'v2=' 
#0  NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) 
#1      main (file: Test.dart:5:3) 
#2    _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) 
#3    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)