一、简介

Lua是一个小巧的脚本语言,由标准C语言编写而成,几乎可在所有操作系统和平台上编译,运行。Lua不适合作为开发独立应用程序的语言。

Lua可以很容易被C/C++代码调用,也可以反过来调用C/C++的函数,由此可以作为扩展脚本与普通的配置文件,代替XML,ini等文件格式。

二、特性

轻量级:5.0.2版的Lua内核小于120KB

可扩展:借助宿主语言(C/C++)的扩展接口和机制

面向过程与函数式编程

自动内存管理等

 例如,通过Lua构建cli命令操作scalar与table:

 1 --get scalar and table
 2 
 3 local function MymodShow()
 4     local myModuleSettings = GetEntry('myModuleSettings')
 5     util.Print("111111\n");
 6     util.Print("MyModStateEnable: %s\n", util.State(tonumber(myModuleSettings['myModStateEnable'])));
 7 
 8     local myModCtrlEntry = GetEntry('myModCtrlEntry')
 9     local RowStatus = {"active", "notInService","notReady","createAndGo","createAndWait","destroy"};
10 
11     util.Print("\n");
12     util.Print(" This is my module table: \n");
13 
14     for k, v in pairs(myModCtrlEntry) do
15         util.Print("index :%d\n",v['myModIndex']);
16         util.Print("Name  :%s\n",v['myModName']); --ascii
17         util.Print("Val   :%d\n",v['myModValue']);
18         util.Print("Rowstatus :%s\n",RowStatus[tonumber(v['myMODRowstatus'])]);
19         util.Print("\n");
20     end
21     util.Print("\n");
22     return Success();
23 end
24 
25 --set table
26 local function MymodTableSet(params)
27     local oSeq = {};
28     local ret = {code = 0};
29 
30     oSeq = {
31         {myModIndex = params['myModIndex']},
32         {myMODRowstatus = 5},
33         {myModValue= params['myModValue']},
34         {myMODRowstatus = 1}
35     };
36 
37     ret=Post('myModCtrlEntry',oSeq);
38     return util.Result(ret);
39 end
40 
41 --set scalar
42 local function MymodScalarSet(params)
43 
44     local oSeq = {};
45     local ret = {code = 0};
46 
47     oSeq = {
48         {myModStateEnable= params['myModStateEnable']}
49     };
50 
51     ret=Post('myModuleSettings',oSeq);
52     return util.Result(ret);
53 end
54 
55 -- Function declaration
56 Fun.Add('MymodShow', MymodShow)
57 Fun.Add('MymodTableSet', MymodTableSet)
58 Fun.Add('MymodScalarSet', MymodScalarSet)
MyModule.lua

相关文章:

  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-04
猜你喜欢
  • 2021-05-15
  • 2021-10-13
  • 2022-12-23
  • 2021-05-20
  • 2021-08-15
  • 2021-11-21
  • 2021-10-04
相关资源
相似解决方案