//aardio 调用 Go 语言 - 切片 import golang; var go = golang(); go.main = /********** package main import "C" import "sort" //export TestSlice func TestSlice(vals *[]int) { //操作 aardio 传过来的切片对象( golang.slice 对象)。 sort.Ints(*vals) } func main() {} **********/ go.buildShared("/.go/TestSlice.go"); //------------------下面调用 DLL----------------------- import console.int; var goDll = raw.loadDll("/.go/TestSlice.dll",,"cdecl"); //创建 Go 切片 import golang.slice; var slice = golang.slice({ //指定原生数组,字段名必须为 value,[]表示动态长度 int value[] = {23,1,22} //动态数组不能为空数组 }) //调用 Go 函数 goDll.TestSlice(slice); /* 如果 Go 代码里修改了切片。 那么在调用后应尽快访问一次 value 字段 , golang.slice 内部就会重新指向 aardio 分配的内存。 */ var items = slice.value //返回的值是一个普通 aardio 数组。 console.dumpJson(items) //slice 也可以直接转换为 JSON console.dumpJson(slice)