Lua

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(链接)
(项目)
 
(未显示1个用户的8个中间版本)
第1行: 第1行:
{{top news}}
 
 
{{SeeWikipedia|Lua (programming language)}}
 
{{SeeWikipedia|Lua (programming language)}}
 
[[Image:Lua-90x90.gif|right]]
 
[[Image:Lua-90x90.gif|right]]
  
 +
Lua
 +
 +
==简介==
 
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
 
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
  
第34行: 第36行:
 
*提供多线程支持。
 
*提供多线程支持。
  
==安装==
+
==指南==
 +
OS X
 +
brew install lua
 +
Other
 
  curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz
 
  curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz
 
  tar zxf lua-5.3.2.tar.gz
 
  tar zxf lua-5.3.2.tar.gz
第44行: 第49行:
 
  Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
 
  Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
  
==示例代码==
+
===示例代码===
 
  print "Hello, world!"
 
  print "Hello, world!"
 
一个比较复杂一点的例子,但是它展示了什么是闭包:
 
一个比较复杂一点的例子,但是它展示了什么是闭包:
第58行: 第63行:
  
 
来源: http://baike.baidu.com/view/416116.htm
 
来源: http://baike.baidu.com/view/416116.htm
 +
 +
==项目==
 +
*[https://github.com/LewisJEllis/awesome-lua Awesome Lua] [[image:awesome.png]]
 +
*[https://github.com/neolithos/neolua NeoLua] A Lua implementation for the Dynamic Language Runtime (DLR).
 +
*[https://github.com/immerrr/lua-mode lua-mode]
 +
*[https://wiki.eclipse.org/LDT Lua Development Tools]
 +
[https://wiki.eclipse.org/LDT/User_Area/updatesites Update sites]: http://download.eclipse.org/ldt/releases/stable
 +
*[https://github.com/unknownworlds/decoda Decoda Lua IDE and debugger] 基于 [[wxWidgets]]、[[scintilla]] 和 [[C++]] 构建,目前只支持Windows平台。
 +
 +
==文档==
 +
*[http://docs.huihoo.com/lua/Lua-as-a-common-language-for-the-IoT.pdf Lua as a common language for the IoT]
 +
 +
==图集==
  
 
==链接==
 
==链接==
 
*http://www.lua.org/
 
*http://www.lua.org/
*[https://github.com/LewisJEllis/awesome-lua Awesome Lua] [[image:awesome.png]]
 
 
*[http://docs.huihoo.com/lua/manual/ Lua 参考手册]
 
*[http://docs.huihoo.com/lua/manual/ Lua 参考手册]
 
*[http://lua-users.org/wiki/LuaEditorSupport Lua Editor Support]
 
*[http://lua-users.org/wiki/LuaEditorSupport Lua Editor Support]
 
*[http://download.huihoo.com/lua/ Lua下载]
 
*[http://download.huihoo.com/lua/ Lua下载]
 
*[http://blog.codingnow.com/2013/01/binding_c_object_for_lua.html 为 Lua 绑定 C/C++ 对象]
 
*[http://blog.codingnow.com/2013/01/binding_c_object_for_lua.html 为 Lua 绑定 C/C++ 对象]
 
{{comment}}
 
  
 
[[category:programming language]]
 
[[category:programming language]]
 
[[category:lua]]
 
[[category:lua]]
 
[[category:game]]
 
[[category:game]]

2022年2月26日 (六) 02:05的最后版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Lua Thanks, Wikipedia.
Lua-90x90.gif

Lua

目录

[编辑] 简介

Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua最著名的应用是在暴雪公司的网络游戏WOW中。

Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。

Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。 一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,这将给Lua带来更加优秀的性能。请访问 http://luajit.luaforge.net/ 来了解这个项目。

和Python等脚本不同,Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。

[编辑] 新闻

自http://www.lua.org/news.rss加载RSS失败或RSS源被墙

[编辑] 目标

LUA的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。

很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门等。

[编辑] 特性

  • 轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里;
  • 可扩展 LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样;
  • 同时支持面向过程编程和面向对象编程;
  • 自动内存管理;
  • 提供一系列数据结构,包括数组、链表、集合、字典、散列表等;语言内置正则表达式匹配;
  • 闭包(closure);
  • 函数也可以看做一个值;
  • 提供多线程支持。

[编辑] 指南

OS X

brew install lua

Other

curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz
tar zxf lua-5.3.2.tar.gz
cd lua-5.3.2
make macosx test or 
make linux test
make install
lua -v
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio

[编辑] 示例代码

print "Hello, world!"

一个比较复杂一点的例子,但是它展示了什么是闭包:

function create_a_counter()
    local count = 0
    return function()
        count = count + 1
        return count
    end
end

create_a_counter()返回一个记数器,每次调用这个记数器,都会得到一个比上次大1的值。

来源: http://baike.baidu.com/view/416116.htm

[编辑] 项目

Update sites: http://download.eclipse.org/ldt/releases/stable

[编辑] 文档

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱