Обратный вызов конструктора с несколькими параметрами

То, что я пробовал до сих пор, – это обратный вызов с одним параметром, и он работает:

class SomeClass (something:Int = 3, val callback: (Int) -> Unit) { fun doSomething() { callback(11) } } class AnotherClass { val something = SomeClass({onSomething(it)}) protected fun onSomething(num: Int) { // ... } } 

Но как реализовать его с помощью нескольких параметров, таких как:

 class SomeClass (something:Int = 3, val callback: (Int, String) -> Unit) { fun doSomething() { callback(11, "Yeah") } } class AnotherClass { val something = SomeClass(/* ...... what goes here???? */) protected fun onSomething(num: Int, str: String) { // ... } } 

    Просто используйте синтаксис выражения лямбда с явными параметрами:

     val something = SomeClass { num, str -> onSomething(num, str) } 

    При прохождении лямбда в качестве последнего параметра вы можете опустить скобки.

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

     val something = SomeClass(this::onSomething) 
    Давайте будем гением компьютера.