aardio 文档

aardio 范例: 切片

//切片
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)

Markdown 格式