gpt4 book ai didi

go-duktape 调用函数的例子

转载 作者:IT王子 更新时间:2023-10-29 02:21:07 25 4
gpt4 key购买 nike

go-duktape存储库没有“问题”部分或无论如何寻求帮助。

自述文件中没有有用的示例。

我正在尝试在 javascript 文件中定义一个函数(带有参数和返回值)并从 go 中调用该函数。

Javascript 文件:

function hello(name, age){
return "Hello " + name + " you are " + age;
}

事情的发展方向会是什么样子?

最佳答案

这是我第一次使用这段代码,可能还有另一种不使用 json 获取整个对象的方法,但到目前为止,我还没有找到它。希望对您有所帮助。

主要包

import (
"github.com/olebedev/go-duktape"
"fmt"
"time"
)

func main() {
start := time.Now()
ctx := duktape.New()
ctx.PushGlobalGoFunction("log", func(c *duktape.Context) int {
i := -1
for {

if c.GetType(i).IsNone() == true {
break
}

if i < -100 {
break
}

if c.GetType(i).IsString() == true {
fmt.Println(c.SafeToString(i))
}

if c.GetType(i).IsNumber() == true {
fmt.Println(c.GetNumber(i))
}

if c.GetType(i).IsObject() == true {
c.ToObject(i)
fmt.Printf( "%v\n", c.JsonEncode(i) )
}

i -= 1
}

return 0
})
ctx.PevalString(`log({'hello':'word'})`)
ctx.DestroyHeap()
elapsed := time.Since(start)
fmt.Printf("total time: %s\n", elapsed)
}

关于go-duktape 调用函数的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com