РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
96 of 723 menu

Объявление extension

Объявление extension в Dart создаёт расширение - специальную конструкцию, которая добавляет новые методы, геттеры, сеттеры и операторы к уже существующим классам. Расширение объявляется с помощью ключевого слова extension, после которого указывается имя расширения, ключевое слово on и тип, к которому расширение применяется. Внутри тела расширения размещаются методы, геттеры, сеттеры и операторы, доступные у объектов указанного типа.

Расширения не изменяют сам класс и не создают новый тип. Они позволяют вызывать добавленные члены так, как будто они объявлены непосредственно в классе. Если расширение объявлено без имени, оно называется анонимным и доступно только в пределах библиотеки, в которой объявлено.

Синтаксис

extension ExtensionName on Type { // methods, getters, setters, operators }

Пример

Давайте объявим расширение для типа String и добавим в него метод firstChar, который возвращает первый символ строки:

extension StringExtension on String { String firstChar() { return this[0]; } } void main() { String str = 'abcde'; print(str.firstChar()); }

Результат выполнения кода:

"a"

Пример

Давайте объявим расширение для типа int и добавим в него геттер isEven, который проверяет, является ли число чётным:

extension IntExtension on int { bool get isEven { return this % 2 == 0; } } void main() { int num = 4; print(num.isEven); }

Результат выполнения кода:

true

Пример

Давайте объявим расширение для типа List и добавим в него метод second, который возвращает второй элемент списка:

extension ListExtension on List { dynamic second() { return this[1]; } } void main() { List res = ['a', 'b', 'c', 'd', 'e']; print(res.second()); }

Результат выполнения кода:

"b"

Смотрите также

  • ключевое слово extension type,
    которое создаёт тип-обёртку на основе другого типа
  • ключевое слово class,
    которое объявляет новый класс
  • ключевое слово abstract,
    которое объявляет абстрактный класс
  • ключевое слово mixin,
    которое объявляет примесь для повторного использования кода
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить