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

Extension type

Extension type - это конструкция языка Dart, которая позволяет создать новый тип, основанный на уже существующем типе (представлении). В отличие от обычного класса, extension type не создаёт нового объекта во время выполнения, а является статической обёрткой. Это полезно для оптимизации производительности, особенно при работе с примитивами и коллекциями. В первом параметре указывается имя нового типа, во втором - ключевое слово extension type, в третьем - тип-представление, а в теле определяются методы и свойства. Доступ к исходному значению осуществляется через this или _representation.

Синтаксис

extension type Name(Type representation) { // methods and properties }

Пример

Создадим extension type для строки и добавим метод, возвращающий длину:

extension type MyString(String value) { int get length => value.length; } void main() { MyString str = MyString('abcde'); print(str.length); }

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

5

Пример

Расширим тип для целого числа, добавив геттер для проверки чётности:

extension type EvenInt(int value) { bool get isEven => value % 2 == 0; } void main() { EvenInt num = EvenInt(4); print(num.isEven); }

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

true

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

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