"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 意向操作在两者之间进行转换。
我正在尝试在我的应用程序中使用一些回调,它适用于 "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 意向操作在两者之间进行转换。