aardio 文档
aardio 范例: aardio 回调函数
//aardio 回调函数
import golang.yaegi;
var go = golang.yaegi();
go.eval(`
package main
//导入模块
import (
"aardio"
)
func TestCallBack(fnCallback float64) int{
var s = "字符串"
/*
回调 aardio 用 raw.jsonCall 创建的函数指针。
支持可变参数(使用 JSON 自动转换参数),aardio 函数返回 null 或 int 类型整数值 。
aardio.CallJson() 返回类型为 (int,error)。
注意:aardio 与 Go 导出函数所在的默认 goroutine 之间的互调属于同一线程(这里不用考虑多线程)。
*/
var r,_ = aardio.CallJson( fnCallback ,s,123,map[string]int{"id": 1, "id2": 2} )
return r
}
`)
import raw.jsonCall
//创建回调函数指针, 在 Go 中必须用 aardio.CallJson 调用。
var callback = raw.jsonCall(
function(a,b,c){
console.log("回调参数:",a,b)
console.dumpJson(c);
return 123;
} );
import console.int
/*
golang.yaegi 会将函数指针转换为数值。
而所有数值参数的类型都是 float64,所以 Go 参数要声明类型为 float64。
其他类型可自 float64 转换过去。
*/
var ret = go.TestCallBack( callback )
console.log(ret);
Markdown 格式