请原谅我不知道我应该在一篇文章中还是单独询问所有基本类型。
主要问题:
set
,map
等其他类型甚至数据类呢?我在Kotlin主文件的末尾有这个
@SymbolName("callback")
external fun cb(<......>)
如果cb()
定义中的类型与我从main()
传递的内容匹配,例如Int
,Float
,然后从浏览器访问cb()
,将获得正确的值。
如果我使用Any
,那么我得到的只是一个整数(我想应该是指向内存的指针)。
我尝试检查heap
,但是对于如何检索通过Kotlin传递给cb()
的int,float字符串毫无用处。
对于数组,我注意到jsinterop包中有JsArray
,但是找不到如何使用它的良好参考。
我注意到的一件事是,我可以通过Arenas获得一个整数数组:
val arena = allocateArena()
pushIntToArena(arena, 1)
pushIntToArena(arena, 12)
然后我将通过konan_dependencies.env.areans
获取数组。
但是,如何获得浮点数数组?请告知。
P.S。我在konan
中使用build.gradle
插件来编译到Wasm32。通过向callback
中的window.konan.libraries
添加函数,将module.wasm.js
传递给Wasm:
var konan = {
libraries: [
{ "callback": function(msg) { console.trace(msg); } }
],
}