Есть ли способ сделать составление протокола Swift в Kotlin - PullRequest
2 голосов
/ 25 июня 2019

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

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

protocol Fooable {}
protocol Barable {}

// the new protocol
typealias FooBarable = Fooable & Barable

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

Есть ли способ сделать это в интерфейсах Kotlin?

Ответы [ 2 ]

4 голосов
/ 25 июня 2019

Пожалуйста, проверьте код ниже:

interface A{

}

interface B{

}

fun <T> check(variable: T) where T : A, T: B{
    print("Hello");
}

приведенное выше выдает ошибку времени компиляции, если вы пытаетесь передать переменную, которая не подтверждает их обоих

3 голосов
/ 25 июня 2019

Со стороны функций вы сможете обрабатывать его с помощью универсальных функций, используя where -clause :

fun <T> foo(obj: T) where T: Fooable, T: Barable {
    ...
}
...