Print, Const, Final и Null | Изучение переменных DART
Привет, появилось желание делиться собранной информацией, которую сам только изучил, тем самым делаю структурирование знаний и делюсь ими, может кто-то на том же пути, где и я, вместе легче!
Если вы на пути изучения Flutter или вам просто интересно подписывайтесь на мой канал в telegram, буду рад вас видеть!
Предыдущая статья: Работа с переменными | Изучение переменных DART
Содержание:
Отображение информации в консоле
Проблема
Вы хотите отобразить программный вывод из приложения Dart.
Решение
Используйте инструкцию print для отображения информации из приложения. Инструкция print может отображать, как статическое (т.е. строковый литерал), так и переменное содержимое. Вот пример того, как печатать статическое содержимое:
Вот пример того, как напечатать содержимое переменной:
Обсуждение
Используйте символ $ для ссылки на переменную в инструкции print. Префикс переменной с помощью $ сообщает Dart, что используется переменная, и она должна заменить это значение.
Инструкция print полезна в ряде сценариев. Печать статического содержимого не требует каких-либо дополнительных действий для отображения информации. Для использования со статическим содержимым заключите значение в кавычки, и оператор печати выполнит все остальное.
Для печати значения переменной потребуется, чтобы переменная имела префикс со знаком $. Если для печати содержимого используется Dart, вы можете указать язык, на котором вы хотите отобразить значение. Во втором примере вы видите три распространенных способа ссылки на переменную в инструкции print.
Dart предоставит обратную связь о том, требуется ли фигурная скобка; обычно это не так. Однако, если вы создаете переменную сложного типа, проверьте, ссылаетесь ли вы на желаемый элемент.
Добавление постоянной переменной (Во время компиляции)
Проблема
Вы хотите создать переменную, которая не может быть изменена (неизменяемая) в любой момент.
Решение
Используйте const для создания переменной, значение которой нельзя переназначить и которая будет проверяться во время компиляции. Вот пример использования переменной const:
Обсуждение
В Dart const представляет значение, которое нельзя изменить. Используйте ключевое слово const там, где переменная не подлежит изменению. В примере объявляется переменная const, имеющая значение 365, что означает, что она неизменна во всей области применения.
Если бы вы попытались изменить значение внутри приложения, вы бы увидели ошибку времени компиляции, указывающую на невозможность присвоения из-за того, что переменная была назначена как const. Удалите комментарий, связанный со строкой, содержащей daysInYear = 10, чтобы увидеть ошибку такого типа.
Использование const - хороший метод уменьшения количества ошибок в вашем приложении. Объявление переменных как const обеспечивает надежный интерфейс, который использует компилятор для явной проверки использования переменных.
Добавление постоянной переменной (Во время выполнения)
Проблема
Вы хотите создать переменную, которую нельзя изменить (неизменяемую), но вы не будете знать ее значение до тех пор, пока приложение не будет запущено (т.е. во время выполнения).
Решение
Используйте final для создания переменной, значение которой нельзя переназначить. В отличие от переменной const, конечное значение переменной присваивается во время выполнения. Вот пример использования конечной переменной:
Обсуждение
Final представляет значение, которое должно быть определено во время выполнения и не подлежит изменению. Ключевое слово final используется в ситуациях, когда значение выводится во время выполнения (т.е. когда приложение активно). Опять же, присвоенное значение является неизменяемым; однако, в отличие от значения const, оно не может быть известно во время компиляции. Если вы попытаетесь выполнить присвоение конечной переменной, которая уже была установлена, компилятор выдаст сообщение об ошибке.
В примере кода today, выводимый инструкцией print, возвращается функцией DateTime. Возвращаемое значение определяется при запуске приложения, поэтому оно будет отображаться на основе фактического дня недели, доступного на главном компьютере.
Работа с переменными Null
Проблема
Вы хотите присвоить переменной значение по умолчанию null.
Решение
Используется для применения согласованного значения к объявленной переменной - это интересная концепция, поскольку она предназначена для представления отсутствия содержимого. Обычно значение используется для инициализации переменных, которым не присваивается значение по умолчанию. В данном случае может использоваться для представления переменной, которой явно не было присвоено значение.
Вот пример того, как объявить переменную, как в Dart:
Обсуждение
Чтобы разрешить присвоение типу данных, ожидается, что ? тип добавляется для явного указания на то, что значение также может быть null. В примере myVariable устанавливается в значение nullable путем префикса переменной с ?. В Dart также является объектом, что означает, что его можно использовать за пределами простого варианта использования “без значения”. Более поздние версии Dart SDK также требуют явного подтверждения того, является ли тип данных обнуляемым или ненулевым.
Обратите внимание, что начиная с версии Dart v2.0, безопасность типов теперь установлена по умолчанию, что означает, что ее больше невозможно присвоить всем типам данных. Для получения дополнительной информации обратитесь к ссылке на класс в Dart API.