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

Метод toString в Dart

У обычного класса строковое представление объекта задают переопределением toString. Пока метод не написан, print показывает только имя типа:

class Post { final String title; final int likes; const Post(this.title, this.likes); }

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

var post = Post("Ann", 25); print(post);

После @override и своего toString в консоли видны имя типа и значения полей:

class Post { final String title; final int likes; const Post(this.title, this.likes); @override String toString() => "Post($title, $likes)"; }

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

var post = Post("Ann", 25); print(post);

Тот же текст получится при явном вызове toString - это удобно при отладке и при логировании промежуточных значений:

class PairLabel { final String left; final String right; PairLabel(this.left, this.right); @override String toString() => "PairLabel($left, $right)"; }

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

var row = PairLabel("a", "b"); print(row.toString());

Формат строки задаете сами: перечисляете поля в нужном порядке. Для отладки часто хватает краткой записи в скобках:

class Order { final int id; final double total; Order(this.id, this.total); @override String toString() => "Order($id, $total)"; }

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

var order = Order(7, 19.5); print("debug: $order");

Сделайте класс Color с полями red, green, blue. Создайте объект Color(255, 128, 0) и выведите его на экран одной командой print.

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

class Version { final int major; final int minor; Version(this.major, this.minor); @override String toString() => "Version($major, $minor)"; }

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

var v = Version(2, 1);

Выведите на экран результат вызова v.toString().

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