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

Приведение типа в Dart

Переменная типа родителя не дает вызывать методы потомка. Если там лежит Note, тип сужают оператором as:

class Post { void show() { print("post"); } } class Note extends Post { @override void show() { print("note"); } }

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

Post post = Note(); (post as Note).show();

Неверное приведение останавливает программу с ошибкой. Безопасный вариант - as?: при неудаче вернется null:

Post post = Post(); var note = post as Note?; print(note);

После успешной проверки is в той же ветке компилятор сужает тип - отдельный as не нужен:

class Post {} class Employee extends Post { int getSalary() => 1000; } void printSalary(Post post) { if (post is Employee) { print(post.getSalary()); } }

Переменная типа Post должна ссылаться на объект класса Employee.

Приведите переменную к типу Employee с помощью as и выведите на экран зарплату сотрудника.

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