Таким образом, для Swift мы можем создавать новые типы или передавать метод в качестве параметров, используя оператор &.
&
Пример кода Swift:
protocol Fooable {} protocol Barable {} // the new protocol typealias FooBarable = Fooable & Barable // method parameter func doSomethingFor(object: Fooable & Barable) { ... }
Есть ли способ сделать это в интерфейсах Kotlin?
Пожалуйста, проверьте код ниже:
interface A{ } interface B{ } fun <T> check(variable: T) where T : A, T: B{ print("Hello"); }
приведенное выше выдает ошибку времени компиляции, если вы пытаетесь передать переменную, которая не подтверждает их обоих
Со стороны функций вы сможете обрабатывать его с помощью универсальных функций, используя where -clause :
where
fun <T> foo(obj: T) where T: Fooable, T: Barable { ... }