android - 是否可以将 kotlin 中的高阶函数映射到字符串

标签 android kotlin

我必须发出异步请求,然后将结果通知相关的监听器。

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/

相关文章:

android - 使用 SupportMapFragment 而不是 MapFragment

android - 如何剪切图像的某些部分并将其显示在 ImageView 中

kotlin - for范围中的 `val`不是不可变的?

kotlin - 我想检查是否引发了异常,但是发生了错误

java - Spring @RestController 不使用 Kotlin 映射 URL

kotlin - Kotlin:编写类似于Java的大型lambda吗?

Android 如何在搜索栏中添加间隔文本

Android GoogleMap 在暂停-恢复后停止 react

Android获取时间格式

java - 在添加或删除其中的项目时保持初始列表项目顺序