golang调用lua脚本
来源:互联网 发布:程序员的技术栈 编辑:程序博客网 时间:2024/06/15 20:29
上篇文章已经讲过golua如何安装,本篇文章主要讲解golang如何利用golua调用lua脚本
1:import
import "github.com/aarzilli/golua/lua"
2:调用lua脚本的几个重要函数
L := lua.NewState() //创建一个lua虚拟机L.DoFile("./xxx") //设置要调用的lua文件L.GetField(lua.LUA_GLOBALSINDEX,"xxx") //获取lua脚本的符号L.Call(arg1,arg2) //调用函数 第一个参数标识参数的个数,第二个参数标识返回值的个数
3:栗子
3.1:test.lua
--0返回值0参数function GetStr() print "world"end--多参数0返回值function GetBigger(a,b) if a >= b then print (a) else print (b) endend--0参数1返回值function GetResult() return "hello"end--多参数1返回值function Compare(a,b) if a >= b then return a else return b endend--1参数多返回值function MoreReturn(a) if (a == 10) then return "world","hello","golang" endend
3.2:golang调用
func main() { L := lua.NewState() L.OpenLibs() defer L.Close() err := L.DoFile("./test.lua") if err != nil{ fmt.Println("err",err.Error()) } /*zero params zero results*/ L.GetField(lua.LUA_GLOBALSINDEX,"GetStr") //L.PushInteger(1) L.Call(0,0) /*two params zero results*/ L.GetField(lua.LUA_GLOBALSINDEX,"GetBigger") L.PushInteger(6) L.PushInteger(3) L.Call(2,0) /*zero params one result*/ L.GetField(lua.LUA_GLOBALSINDEX,"GetResult") L.Call(0,1) ret1 := L.ToString(1) fmt.Println(ret1) L.Pop(1) /*two params one result*/ L.GetField(lua.LUA_GLOBALSINDEX,"Compare") L.PushInteger(7) L.PushInteger(9) L.Call(2,1) ret2 := L.ToInteger(1) fmt.Println(ret2) L.Pop(1) /*one params more results*/ L.GetField(lua.LUA_GLOBALSINDEX,"MoreReturn") L.PushInteger(10) L.Call(1,3) ret3 := L.ToString(1) ret4 := L.ToString(2) ret5 := L.ToString(3) fmt.Println(ret3,ret4,ret5)}
github
阅读全文
0 0
- golang调用lua脚本
- golang调用lua脚本之安装golua
- c调用lua脚本
- C++调用Lua脚本
- lua调用shell 脚本
- Redis调用lua脚本
- Golang绑定Lua脚本,小小封装一下
- Lua脚本:Lua调用C实现方法
- Lua脚本:C调用Lua实现方法
- Flash调用Lua脚本: 五
- C语言调用Lua脚本
- C++编程调用LUA脚本
- projectanarchy中 调用Lua 脚本
- C语言调用Lua脚本
- hiredis中lua脚本调用
- VS2012 C++ 调用LUA脚本
- Lua 脚本调用 C 函数
- Lua 脚本调用 C 函数
- [JSP]Servlet之获取初始化参数inti/MVC模型
- python从百度爬图片
- Tarjan算法解强连通分量
- 7.7.1用穷举法计算两个正整数的最大公约数
- 利用休息时间编写的关于新唐单片机较为简单的ADC+定时器+IO端口程序
- golang调用lua脚本
- idea 误删文件恢复
- Introduction to Linear Algebra 学习笔记(一)
- Toj 3777 Function Problem
- Java培训总结-第1周
- bzoj1026 [SCOI2009]windy数
- opencv3/C++视频背景建模
- HTML 5概述
- SCRAPY_part4_Items