从 C 本地导出迭代 Kotlin 映射
Iterating through Kotlin map from C native export
我们有一个本地构建并导出到 C 的 Kotlin 包。我们有包含所有嵌套 struct
和 pinned
样式指针的头文件。
在Kotlin代码中,有一个我们要访问的Map。我们可以获取 Kotlin 包枚举(地图的键),但是实际索引到“kref kotlin 地图对象”以获取地图中的值的 C 代码是什么?
基本上,我们想知道如何从 C 代码中操作 Map、List 和 Array。实际步骤 and/or 参考文档将不胜感激。
Kotlin/Native 编译器不会将集合的任何函数导出到本机库 API。这个决定是在一段时间前做出的,目的是尽量减少库头的冗长。但是,这会导致您遇到问题。
目前,推荐的方法是在 Kotlin 代码中编写包装函数。
有关此方法的示例,请参阅 this Kotlin 问题跟踪器上的票证。我还建议订阅它,以尽快获取问题状态的更新。
发布此消息以防某人无法使用票证:
fun getListElement(list: List<Any?>, index: Int) = list.get(index)
/// function accessing the list element by index
我们有一个本地构建并导出到 C 的 Kotlin 包。我们有包含所有嵌套 struct
和 pinned
样式指针的头文件。
在Kotlin代码中,有一个我们要访问的Map。我们可以获取 Kotlin 包枚举(地图的键),但是实际索引到“kref kotlin 地图对象”以获取地图中的值的 C 代码是什么?
基本上,我们想知道如何从 C 代码中操作 Map、List 和 Array。实际步骤 and/or 参考文档将不胜感激。
Kotlin/Native 编译器不会将集合的任何函数导出到本机库 API。这个决定是在一段时间前做出的,目的是尽量减少库头的冗长。但是,这会导致您遇到问题。
目前,推荐的方法是在 Kotlin 代码中编写包装函数。
有关此方法的示例,请参阅 this Kotlin 问题跟踪器上的票证。我还建议订阅它,以尽快获取问题状态的更新。
发布此消息以防某人无法使用票证:
fun getListElement(list: List<Any?>, index: Int) = list.get(index)
/// function accessing the list element by index