Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save felipepedroso/b47cf739b7065791ba54d00bde1e49ce to your computer and use it in GitHub Desktop.
Save felipepedroso/b47cf739b7065791ba54d00bde1e49ce to your computer and use it in GitHub Desktop.
TestLambdas.kt
fun main(args: Array<String>) {
val callbacksList = mutableListOf<(HttpResponse) -> Unit>()
// Adicionando um método estático
callbacksList.add(::printResponse)
// Adicionando um callback anônimo
val anonymousCallback = { httpResponse: HttpResponse ->
println("Response code from anonymous callback: ${httpResponse.code}")
}
callbacksList.add(anonymousCallback)
// Adicionando um callback de uma classe
val listener = ResponseListener()
callbacksList.add(listener::onResponse)
val response = HttpResponse(200)
for (callback in callbacksList) {
callback(response)
// ou
//callback.invoke(response)
}
}
fun printResponse(httpResponse: HttpResponse) {
println("Response code: ${httpResponse.code}")
}
data class HttpResponse(val code: Int)
class ResponseListener {
fun onResponse(httpResponse: HttpResponse) {
println("Response code from class listener: ${httpResponse.code}")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment