"callback(value)" 和 "callback.invoke(value)" 有什么区别?

What's the difference between "callback(value)" and "callback.invoke(value)"?

我正在尝试在我的应用程序中使用一些回调,它适用于 "callback(value)""callback.invoke( value)" 正确调用回调。

我想知道“回调(值)”是否只是一个缩短版本,或者这两种调用回调的方式有区别吗?

我的函数带有两个 回调 参数(但只需要 1 个并且可以在没有另一个的情况下工作):

    fun signIn(username: String, password: String,  callback: (Response?) -> Unit) {

    val reqBody =
        "{\"what_to_do\":\"sign_user_in\",\"username\":\"$username\",\"password\":\"$password\"}"

    val request = createRequest(reqBody)

    myHttpClient.newCall(request).enqueue(object : Callback {
        override fun onResponse(call: Call, response: Response) {
                callback(response)
                callback.invoke(response)
            }
        }

        override fun onFailure(call: Call, e: IOException) {
            // Failed request..
        }
    })
}

invoke是Kotlin中operator函数的名称,对应函数调用()运算符。使用其运算符形式 () 或更长的函数形式 invoke() 之间没有区别。您甚至可以通过 IDE 意向操作在两者之间进行转换。