ホームページ  >  記事  >  バックエンド開発  >  golang luaの使い方

golang luaの使い方

(*-*)浩
(*-*)浩オリジナル
2019-12-13 13:30:053594ブラウズ

golang luaの使い方

github には、gopher-lua という golang で書かれた Lua 仮想マシンがあります。

lua のデータ型と golang のデータ型の対応関係はドキュメントで説明されていますが、型が L で始まり、型の名前が LT で始まることに注意してください。 。 (推奨学習: go)

golang のデータを lua のデータに変換するには、L で始まる型に変換する必要があります:

str := "hello"
num := 10
L.LString(str)
L.LNumber(float64(num))

lua のデータは次のとおりです。 golang のデータについては、ToInt や CheckString などの変換関数がプロジェクトで提供されていますが、事前に型が分かっている必要があります。分からない場合は型判定を行う必要があります。ここでは gopher -luar を使用して型変換を容易にします。

golang と lua は相互に関数を呼び出します

golang の関数は func(L *lua.State に変換する必要があります) ) int this この形式は lua に注入できます。戻りパラメータの int は戻りパラメータの数を表します。

value := L.Get(1)
switch value.Type() {
case lua.LTString:
case lua.LTTable:
....
}

golang で lua 関数を呼び出すには、最初に lua スクリプトでこの関数を定義する必要があります次に、CallByParam を呼び出します:

func hello(L *lua.State) int {
     //将返回参数压入栈中
     L.Push(lua.LString("hello"))
     //返回参数为1个
     return 1
}
//注入lua中
L.SetGlobal("hello", L.NewFunction(hello))

以上がgolang luaの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。