Программирование дротиков - переменные
Переменная - это «именованное пространство в памяти», в котором хранятся значения. Другими словами, он действует как контейнер для значений в программе. Имена переменных называются идентификаторами. Ниже приведены правила именования идентификатора -
Идентификаторы не могут быть ключевыми словами.
Идентификаторы могут содержать буквы и цифры.
Идентификаторы не могут содержать пробелы и специальные символы, за исключением подчеркивания (_) и знака доллара ($).
Имена переменных не могут начинаться с цифры.
Синтаксис типа
Перед использованием переменная должна быть объявлена. Дарт использует ключевое слово 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)