Таким образом, для 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');
}
}
}
Есть ли более чистый и безопасный способ сделать это?