Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtOpExSv 93 of 113 menu
◀ ▶

Несколько расширений в Dart

Для одного типа можно объявить несколько блоков extension с разными именами. Каждый блок добавляет свои команды, и объект вызывает их через точку, если имена методов не пересекаются.

Два расширения для Post с методами shout и mark:

class Post { Post(this.title); String title; } extension PostShout on Post { void shout() { print(title); } } extension PostMark on Post { void mark() { print("done"); } }

Создадим объект и вызовем метод:

var post = Post("note"); post.shout(); post.mark();

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

Пока имена различаются, оба расширения видны в одном файле и методы shout и mark доступны у одного объекта без дополнительных уточнений.

Дан следующий код:

class Employee { Employee(this.name); String name; }

Добавьте расширение с методом, который выводит name, и второе расширение с методом, который выводит "ok". Вызовите оба метода у одного объекта.

Дан следующий код:

class Employee { Employee(this.salary); int salary; }

Сделайте два расширения: в первом метод возвращает salary через print, во втором - геттер tag со строкой "staff". Проверьте оба вызова на одном объекте.

Сделайте класс Employee с полем name, два расширения с разными именами методов и один объект, у которого вызываются обе команды.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить