Есть ли способ сделать состав протокола Swift в дартс - PullRequest
0 голосов
/ 02 мая 2020

Таким образом, для Swift мы можем создавать новые типы или передавать метод в качестве параметров, используя оператор &.

Пример кода Swift:

protocol Fooable {}
protocol Barable {}

// the new protocol
typealias FooBarable = Fooable & Barable

// method parameter 
func doSomethingFor(object: Fooable & Barable) { ... }

Есть ли способ сделать это в Dart's Interfaces?

Я знаю, что могу найти обходной путь для этого, проверив типы данных по ключевому слову is

Пример кода дротика:

void main() {
  Baz().doSomething(Fiz());
}

abstract class Fooable {}
abstract class Barable {}

class Fiz implements Fooable, Barable {
  Fiz();
}

class Baz {
  Baz();

  void doSomething(object) {
    if (object is Fooable && object is Barable) {
      print('$object implements Fooable and Barable');
    }
  }
}

Есть ли более чистый и безопасный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...