我必须发出异步请求,然后将结果通知相关的监听器。
fun connectToTopic(topic:String, body:(topic:String, data : ByteArray ) -> Void){
topicCallbackMap.put(topic, body) // is this possible???
}
我想创建一个从“主题”到高阶函数的映射,这样我就可以为特定主题调用特定的高阶函数,就像这样
private val topicCallbackMap: Map<String, body:(topic:String, data : ByteArray ) -> Void>
上面一个是错误的代码,只是想给出本质。
我想要的可以通过使用接口(interface)监听器轻松实现,但我想知道这在 Kotlin 中是否可行。谢谢。
最佳答案
这是可能的。您的代码中只有一些语法错误。请注意,您需要一个 MutableMap
才能将值放入 map 中。
private val topicCallbackMap = mutableMapOf<String, (String, ByteArray) -> Unit>()
fun connectToTopic(topic:String, body: (String, ByteArray) -> Unit) {
topicCallbackMap.put(topic, body)
//OR
topicCallbackMap[topic] = body
}
关于android - 是否可以将 kotlin 中的高阶函数映射到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136691/