Вызываемый объект в Котлине или Свифте - PullRequest
0 голосов
/ 06 февраля 2019

Можно ли создать callable объект в Kotlin и / или Swift?

У меня много объектов, у которых есть только один метод execute.Объект в основном используется как замыкание.Некоторые зависимости фиксируются во время строительства объекта.Некоторые аргументы передаются при вызове метода execute.

Причина, по которой я не использую простые функции, заключается в том, что классы реализуют интерфейсы, и проверка типов гораздо полезнее, хотя и вне программы.

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете перегрузить оператор invoke :

class Callable(val prop: String) {
    operator fun invoke(para : String) {
        println("Invoke: $prop $para")
    }
}

fun main() {
    val c = Callable("prop")
    c("para")
}
...