Искусство флаттера

The Art of Flutter – это серия статей на Medium, предназначенная для начинающих, в которой представлены различные ключевые темы и сведения о Flutter  и Dart. В этой серии также будет представлена ​​Firebase, платформа Backend-as-a-Service (BaaS) как часть Облачной платформы Google, и рассказывается, как использовать Flutter с Firebase использует Golang для Firebase Cloud Functions в производстве в больших масштабах.

Чтобы ознакомиться с первой частью Dart Basics, сначала прочтите The Art of Flutter: Dart Basics (Part 1).

Основы дартс (Часть 2)

Во второй части Dart Basics я рассмотрю более ключевые понятия в следующих разделах Dart Basics (Часть 2) следующим образом:

Условные операторы и циклы

Если и еще

Условия if и else позволяют выполнять функции при соблюдении правильных условий.

Для циклов

Функция цикла for позволяет многократно выполнять один и тот же набор функций в зависимости от количества элементов в коллекции.

Пока и делать-пока

Функция цикла while сначала проверит условие, которое должно быть выполнено, прежде чем выполнять код в замыканиях цикла, и цикл остановится до тех пор, пока условие не будет выполнено.

Функция цикла do-while сначала выполнит код в замыканиях цикла, прежде чем проверять условие, которое должно быть выполнено, и цикл остановится до тех пор, пока условие не будет выполнено.

Перерыв и продолжение

Ключевое слово break позволяет остановить цикл при выполнении заданного условия.

Ключевое слово continue позволяет пропустить текущую итерацию цикла и перейти к следующей итерации.

Переключатель и корпус

Условие switch и case позволяет выполнять функции, когда выполняется значение case.

Если ни один из случаев не выполнен, функция будет выполняться по умолчанию case .

Утверждать

Функция assert используется для проверки ваших предположений и вариантов использования в отладочных сборках, не затрагивая выпускные сборки.

Функции

Функция без возвращаемых значений

Функция с типом возвращаемого значения void позволяет выполнять код без возврата значения после его завершения.

Функция с возвращаемыми значениями

Функция с возвращаемым типом типа bool позволяет выполнять код и возвращать значение после его завершения.

Функция с требуемыми параметрами

Функция с требуемыми параметрами может быть выполнена только при наличии всех требуемых параметров.

Функция с необязательными параметрами

Функция с необязательными параметрами может быть выполнена, даже если необязательные параметры не указаны.

Функция main()

Каждое приложение начинается с main() в начале жизненного цикла приложения.

Первоклассная функция

Вы можете передать функцию как параметр в другую функцию.

Анонимная функция

Анонимная функция — это функция без имени.

Исключения

Бросать

Ключевое слово throw позволяет инициировать исключение ошибки в определенный момент времени выполнения.

Поймать

Ключевое слово catch используется вместе с ключевым словом try для обнаружения любых ошибок при выполнении ряда функций в замыканиях try.

Ну наконец то

Ключевое слово finally используется вместе с try и catch для выполнения каких-либо действий после обнаружения ошибок.

Классы

Виджет

Виджет также является class, но для создания определенного пользовательского интерфейса.

Переменная экземпляра

Переменная экземпляра является членом class, который содержит данные об объекте, когда вы создали экземпляр объекта class.

Вы можете объявлять как статические, так и нестатические переменные экземпляра в файле class. Когда вы создаете экземпляр класса, нестатические переменные экземпляра инициализируются как значение null.

Примечание. В ближайшем будущем Dart внесет критическое изменение в систему типов, в которой типы данных больше не будут нулевыми по умолчанию, и вам потребуется инициализировать значение по умолчанию при объявлении переменных. Пожалуйста, обратитесь к статье Объявление Sound Null Safety от команды Dart.

Конструктор

Конструктор функций используется для создания нового экземпляра class с инициализированными переменными экземпляра.

По умолчанию конструктор создается автоматически, если он не объявлен вами.

Метод экземпляра

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

Подобно методу экземпляра, вы можете объявить как статические, так и нестатические методы экземпляра в файле class.

Абстрактный класс

abstract class — это каркасный класс, который не может быть создан, поскольку полезно определить общие интерфейсы для других классов, чтобы extends их.

Неявный интерфейс

Каждый class может неявно реализовать другой class как интерфейс class.

Например, класс A, который реализует другой класс B, имеет все члены экземпляра класса B, включая переменные и методы, но не реализует те же функции, что и класс B.

Расширить класс

Вы можете расширить еще один class, чтобы добавить дополнительные функции поверх существующего class, используя ключевое слово extends.

Метод расширения

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

Enum (нумерованный тип)

Перечислимый тип — это особый тип class, используемый для представления фиксированного числа значений констант.

Миксин

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

Дженерики

Литерал коллекции

Вы можете указать тип данных элементов в коллекции, используя синтаксис <data-type> (список и набор) или <data-type, data> (карта).

Параметризованный тип с конструкторами

Вы также можете указать тип данных с помощью конструктора.

Reified Generic Collection Type

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

Ограничить параметризованный тип

Вы можете ограничить class расширением определенного class .

Общий метод

Вы можете определить универсальный метод с универсальным аргументом, переменной и типом возвращаемого значения, представленным T. С помощью этого универсального метода вы можете повторно использовать этот метод для разных типов данных.

Поддержка асинхронности

Будущее

Future — это асинхронная функция, которая позволяет продолжить выполнение функции после настройки операции, требующей много времени. Операция в конечном итоге будет завершена через некоторое время и вернет данные, если они есть.

Ручей

Stream — это асинхронная функция, которая позволяет прослушивать передаваемое значение, когда оно готово к отправке из источника значения. Операция будет продолжать прослушивать последовательность новых испускаемых значений после того, как она была настроена, если не выполняется заданное условие, которое выполняет ключевое слово break или return.

Генераторы

Синхронный генератор

Синхронный генератор — это функция с именем Iterable, которая лениво генерирует последовательность значений в синхронном режиме.

Асинхронный генератор

Асинхронный генератор — это функция с именем Stream, которая лениво генерирует последовательность значений асинхронным способом.

журналы

Распечатать()

Вы можете создавать журналы для консоли с помощью функции print().

отладкапринт()

Вы также можете распечатать журналы на консоли с помощью функции debugPrint(). Вы можете настроить операторы печати, записываемые в консоль.

Примечание. Это работает только в виджете Flutter.

бревно()

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

Резюме

В целом, я рассмотрел большинство ключевых концепций Dart Basics следующим образом:

Основы дартс, часть 1

  • Определение пакета и импорт
  • Точка входа в программу
  • Комментарии
  • Переменные данных
  • Типы данных
  • Конверсии данных
  • Операторы

Основы дартс, часть 2

  • Условные операторы и циклы
  • Функции
  • Исключения
  • Классы
  • Общие
  • Поддержка асинхронности
  • Генераторы
  • Журналы

Эти статьи по основам Dart могут служить шпаргалкой или кратким справочником по разработке Flutter. Я буду постоянно обновлять их по мере появления новых функций и изменений в будущем.

Вот оно! Спасибо, что читаете мои статьи о средней серии The Art of Flutter.

Пожалуйста, следите и следите за будущими статьями в публикации FlutterSG.

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

использованная литература

Статьи по Теме