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

Конструкция switch по образцу в Dart

В switch вместо константы в case можно указать образец. Ветка с командами, как и при обычном выборе по числу, в конце заканчивается break. Здесь важна форма значения и отдельные поля, а не только равенство одному литералу.

Разбор объекта Post по полям:

class Post { Post(this.title, this.likes); final String title; final int likes; } var post = Post("note", 3); switch (post) { case Post(likes: 0): print("empty"); break; case Post(title: var title): print(title); break; }

Тот же прием работает для списка. Сначала проверяют короткий список, затем берут голову и хвост:

var nums = [1, 2, 3]; switch (nums) { case []: print("none"); break; case [var only]: print(only); break; case [var head, ...var tail]: print(head); print(tail.length); break; }

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

class Employee { Employee(this.name, this.years); final String name; final int years; } var worker = Employee("kim", 0);

В switch выведите "new", если years равен нулю, иначе выведите имя через образец с полем name.

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

var pack = [6, 1];

В switch по списку выведите "pair", если элементов ровно два, и "other" в остальных случаях.

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