一篇文章讲明白lua文件是什么?

简介: 一篇文章讲明白lua文件是什么?

lua文件是什么?

  一种小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

  Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

  运行可以通过 Lua 的交互模式,也可以用记事本编辑代码保存为 .lua 的格式,通过 lua 编译器运行。也可以通过第三方工具,将 lua 打包独立运行。

lua_newtable(L); //创建一个表格,放在栈顶

lua_pushstring(L,"mydata"); //压入key

lua_pushnumber(L,66); //压入value

lua_settable(L,-3); //弹出key,value,并设置到table里面去

lua_pushstring(L,"subdata");//压入key

lua_newtable(L); //压入value,也是一个table

lua_pushstring(L,"mydata"); //压入subtable的key

lua_pushnumber(L,53);

valuelua_settable(L,-3); //弹出key,value,并设置到subtable

lua_settable(L,-3); //这时候父table的位置还是-3,弹出key,value(subtable),

//并设置到table里去

lua_pushstring(L,"mydata2");//同上

lua_pushnumber(L,77);

lua_settable(L,-3);

return1;

//栈里现在就一个table其他都被弹掉了。如果要返回一个数组,

//用如下代码:(注意那个关于trick的注释,我在等官方的解释。

//经过验证,这个问题只在windows版本调用dll中方法的时候出现。WinCE正常)

lua_pushstring(L,"arri");

lua_newtable(L);

{

//atrick:otherwisetheluaenginewillcrash.ThiselementisinvisibleinLuascript

lua_pushnumber(L,-1);

lua_rawseti(L,-2,0);

for(int i=0; i

{

lua_pushnumber(L, arri);

lua_rawseti(L, -2, i+1);

}//代码效果参考:http://www.ezhiqi.com/zx/art_7878.html

}//代码效果参考:http://www.ezhiqi.com/zx/art_938.html

lua_settable(L,-3);

相关文章
|
1月前
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
Lua的面向对象编程、协同线程与协同函数的概念和使用,以及Lua文件I/O操作的基本方法。
32 4
lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
|
5月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
227 0
|
5月前
|
存储 缓存 NoSQL
Redis系列学习文章分享---第十三篇(Redis多级缓存--JVM进程缓存+Lua语法)
Redis系列学习文章分享---第十三篇(Redis多级缓存--JVM进程缓存+Lua语法)
82 1
|
JavaScript 前端开发 C++
[√]lua binding模版文件分析
[√]lua binding模版文件分析
79 0
|
XML 自然语言处理 Java
【Lua基础 第5章 】unpack()和pack()、Lua 中的文件 I/O、简单模式下io的部分方法、完全模式下file的部分方法、日期和时间、闭包使用
unpack()和pack()、Lua 中的文件 I/O、简单模式下io的部分方法、完全模式下file的部分方法、日期和时间、闭包使用
874 0
【Lua基础 第5章 】unpack()和pack()、Lua 中的文件 I/O、简单模式下io的部分方法、完全模式下file的部分方法、日期和时间、闭包使用
lua.c:82:10: fatal error: readline/readline.h: 没有那个文件或目录
lua.c:82:10: fatal error: readline/readline.h: 没有那个文件或目录
84 0