Print, Const, Final и Null | Изучение переменных DART

Print, Const, Final и Null | Изучение переменных DART
Print, Const, Final и Null | Изучение переменных DART

Привет, появилось желание делиться собранной информацией, которую сам только изучил, тем самым делаю структурирование знаний и делюсь ими, может кто-то на том же пути, где и я, вместе легче!

Если вы на пути изучения Flutter или вам просто интересно подписывайтесь на мой канал в telegram, буду рад вас видеть!

Содержание:

Отображение информации в консоле

Проблема

Вы хотите отобразить программный вывод из приложения Dart.

Решение

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

void main() { print('Hello World!'); }

Вот пример того, как напечатать содержимое переменной:

void main() { int intVariable = 10; var boolVariable = true; print(intVariable); print('$intVariable'); print('The bool variable is $boolVariable'); }

Обсуждение

Используйте символ $ для ссылки на переменную в инструкции print. Префикс переменной с помощью $ сообщает Dart, что используется переменная, и она должна заменить это значение.

Инструкция print полезна в ряде сценариев. Печать статического содержимого не требует каких-либо дополнительных действий для отображения информации. Для использования со статическим содержимым заключите значение в кавычки, и оператор печати выполнит все остальное.

Для печати значения переменной потребуется, чтобы переменная имела префикс со знаком $. Если для печати содержимого используется Dart, вы можете указать язык, на котором вы хотите отобразить значение. Во втором примере вы видите три распространенных способа ссылки на переменную в инструкции print.

Dart предоставит обратную связь о том, требуется ли фигурная скобка; обычно это не так. Однако, если вы создаете переменную сложного типа, проверьте, ссылаетесь ли вы на желаемый элемент.

Добавление постоянной переменной (Во время компиляции)

Проблема

Вы хотите создать переменную, которая не может быть изменена (неизменяемая) в любой момент.

Решение

Используйте const для создания переменной, значение которой нельзя переназначить и которая будет проверяться во время компиляции. Вот пример использования переменной const:

void main() { const daysInYear = 365; print ('There are $daysInYear days in a year'); }

Обсуждение

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

Если бы вы попытались изменить значение внутри приложения, вы бы увидели ошибку времени компиляции, указывающую на невозможность присвоения из-за того, что переменная была назначена как const. Удалите комментарий, связанный со строкой, содержащей daysInYear = 10, чтобы увидеть ошибку такого типа.

Использование const - хороший метод уменьшения количества ошибок в вашем приложении. Объявление переменных как const обеспечивает надежный интерфейс, который использует компилятор для явной проверки использования переменных.

Добавление постоянной переменной (Во время выполнения)

Проблема

Вы хотите создать переменную, которую нельзя изменить (неизменяемую), но вы не будете знать ее значение до тех пор, пока приложение не будет запущено (т.е. во время выполнения).

Решение

Используйте final для создания переменной, значение которой нельзя переназначить. В отличие от переменной const, конечное значение переменной присваивается во время выполнения. Вот пример использования конечной переменной:

void main() { final today = DateTime.now(); print('Today is day ${today.weekday}'); }

Обсуждение

Final представляет значение, которое должно быть определено во время выполнения и не подлежит изменению. Ключевое слово final используется в ситуациях, когда значение выводится во время выполнения (т.е. когда приложение активно). Опять же, присвоенное значение является неизменяемым; однако, в отличие от значения const, оно не может быть известно во время компиляции. Если вы попытаетесь выполнить присвоение конечной переменной, которая уже была установлена, компилятор выдаст сообщение об ошибке.

В примере кода today, выводимый инструкцией print, возвращается функцией DateTime. Возвращаемое значение определяется при запуске приложения, поэтому оно будет отображаться на основе фактического дня недели, доступного на главном компьютере.

Работа с переменными Null

Проблема

Вы хотите присвоить переменной значение по умолчанию null.

Решение

Используется для применения согласованного значения к объявленной переменной - это интересная концепция, поскольку она предназначена для представления отсутствия содержимого. Обычно значение используется для инициализации переменных, которым не присваивается значение по умолчанию. В данном случае может использоваться для представления переменной, которой явно не было присвоено значение.

Вот пример того, как объявить переменную, как в Dart:

void main(){ int ?myVariable; print ('ten: $myVariable'); myVariable = 10; print ('ten: $myVariable'); }

Обсуждение

Чтобы разрешить присвоение типу данных, ожидается, что ? тип добавляется для явного указания на то, что значение также может быть null. В примере myVariable устанавливается в значение nullable путем префикса переменной с ?. В Dart также является объектом, что означает, что его можно использовать за пределами простого варианта использования “без значения”. Более поздние версии Dart SDK также требуют явного подтверждения того, является ли тип данных обнуляемым или ненулевым.

Обратите внимание, что начиная с версии Dart v2.0, безопасность типов теперь установлена по умолчанию, что означает, что ее больше невозможно присвоить всем типам данных. Для получения дополнительной информации обратитесь к ссылке на класс в Dart API.

Начать дискуссию