`

Lua学习小记——语言

阅读更多
1.起点,经典hello world:

print("Hello World")

这与大多数脚本语言没什么两样,总体来说如果你对JavaScript、Ruby、Python之类有所学习的话,LUA还是相当简单的

2.函数定义,类似JS,用begin end代替大括号:

function fact (n)

    if n == 0 then

       return 1

    else<o:p></o:p>

       return n * fact(n-1)

    end<o:p></o:p>

end<o:p></o:p>


function其实就是lambda算子.

3.  8种基本类型:
nilbooleannumberstringuserdatafunctionthreadtable

boolean类型除了false和nil是false之外,其他都是true
lua支持函数式编程,因此函数是一等公民,userdata用于存储C语言的数据,待深入。thread与多线程编程有关。table是lua的基本数据结构,是array和hash的综合体,比较奇怪的是默认索引从1开始,而不是通常的0。看例子:

days = {"Sunday", "Monday", "Tuesday", "Wednesday",

              "Thursday", "Friday", "Saturday"}

w = {x=0, y=0, label="console"}


4. lua与ruby一样支持多重赋值和函数可以返回多个值,常见控制结构没有什么好说的。

5.可变参数,lua有很浓重的C味道,可变参数也与C一样,用...表示:
function g (a, b, ...) ... end

也可以通过表来传递命名参数:

rename{old="temp.lua", new="temp1.lua"}


6.局部变量的声明 local i=0,仅在声明的代码块内有效。如果没有声明为local,将自动成为全局变量,一个变量在赋值前是nil,通过将变量声明为nil可以删除该变量

7.LUA是有尾递归优化的,也提供了各种高阶函数以及闭包等等特性。

8.loadstring函数,一般其他解释语言中的eval函数相似,不过他是返回一个chunk(每个chunk都是匿名函数)让你执行,比如

f = loadstring("local a = 10; return a + 20")

print(f())        --> 30<o:p></o:p>

也可以通过loadfile将整个文件载入作为chunk。

9.require,用于加载文件,会搜索环境变量LUA_PATH设定的路径,同时能判断文件是否已经加载来避免重复加载。比较奇特的是路径的设置,与 一般的路径完全不同,其实就是用?当占位符,然后require filename的时候,用filename代替这些文号,比如:

?;?.lua;c:\windows\?;/usr/local/lua/?/?.lua

当你require 'lili'的时候,就会寻找下列路径的文件:

lili

lili.lua

c:\windows\lili

/usr/local/lua/lili/lili.lua


10.lua通过loadlib函数可以加载动态链接库

11.pcall在保护模式(protected mode)下执行函数内容,同时捕获所有的异常和错误。若一切正常,pcall返回true以及“被执行函数”的返回值;否则返回nil和错误信息。

12.
分享到:
评论
1 楼 mryufeng 2007-12-04  
lua的实现太经典了,是我的教材来着。

相关推荐

    Lua 5.3.0源码——包含VS2012项目文件

    Lua 5.3.0源码,其中带VS2012的解决方案和项目文件。在压缩包中的win_build中包含了VS2012构建用的文件和目录,可以将Lua核心库编译成动态库或静态库,可以生成Lua编译器和命令行解释器。但是,Lua5.3.0的编译器luac...

    Lua 5.2.2源码——包含VS2012项目文件

    Lua 5.2.2源码,其中带VS2012的解决方案和项目文件。在压缩包中的win_build中包含了VS2012构建用的文件和目录,可以将Lua核心库编译成动态库或静态库,可以生成Lua编译器和命令行解释器。但是,Lua5.2.2的编译器luac...

    Lua 5.2.3源码——包含VS2012项目文件

    Lua 5.2.3源码,其中带VS2012的解决方案和项目文件。在压缩包中的win_build中包含了VS2012构建用的文件和目录,可以将Lua核心库编译成动态库或静态库,可以生成Lua编译器和命令行解释器。但是,Lua5.2.3的编译器luac...

    Lua 5.2.1源码——包含VS2005项目文件

    Lua 5.2.1源码,其中带VS2005的解决方案和项目文件(更新版本的VS也能兼容)。在压缩包中的WinBuild中包含了VS2005构建用的文件和目录,可以将Lua核心库编译成动态库或静态库,可以生成Lua编译器和命令行解释器。

    Python、Lua和Ruby——脚本大P.K.1

    Python、Lua 和 Ruby 是三种广泛应用于游戏开发、脚本编写以及各种软件工程的高级编程语言。每种语言都有其独特的特性和优势,同时也存在一些不足之处。下面我们将详细探讨这些语言的特点。 首先,Python 是一种...

    LuaJIT2-8(Lua解释器——C语言编写)

    Lua是一种轻量级的脚本语言,设计简洁且易于学习。它的语法简洁明了,使得开发者能够快速地编写出高效的代码。在游戏开发、嵌入式系统、网络服务和配置管理等领域,Lua因其小巧和高性能而被广泛使用。 LuaJIT的出现...

    c#调用脚本语言Lua——简单Demo

    c#调用脚本语言Lua——简单Demo 配置: 1. 下载c#下的Lua支持类库。下载地址:http://files.luaforge.net/releases/luainterface/luainterface/2.0.3 将(lua51.dll\LuaInterface.dll)引用自己的项目中。 2. 修改...

    [Lua语言]Lua语言入门

    Lua的源码相对较小且易于理解,是学习者探究语言机制的好材料。 2. **工具**:Lua常用于编写自动化工具、配置脚本或作为其他应用的嵌入式脚本语言,它的小巧和高效使其成为这类任务的理想选择。 【压缩包子文件的...

    lua 脚本语言教程

    简介 Lua 语言基础 Lua 高级特性 ——面向对象 ——c api 我假设大家都学过至少一门编程语言,比如...Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。  在Lua中,一切都是变量,除了关键字。请记住这句话

    Lua脚本语言中文教程.pdf

    这本教程详细介绍了Lua语言的基本概念、语法结构、程序设计方法等,并通过实例引导读者逐步学习和掌握Lua语言。本书的内容仅供个人学习使用,不得用于商业用途,不得擅自复制或发布到其他网站。 在编程语言的世界里...

    Lua学习资料PDF

    Lua是一种轻量级的、可嵌入式的脚本语言,主要设计用于支持程序的配置、扩展和脚本编写。它的语法简洁清晰,易于学习,同时提供了丰富的标准库和强大的元编程能力。以下是对Lua学习的一些关键知识点的详细介绍: 1....

    C语言头文件 LUA_C

    C语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 LUA_CC语言头文件 ...

    Lua 语言学习.ppt

    Lua 语言学习PPT,很不错的学习文档!脚本语言!

    lua学习资料lua学习资料lua学习资料lua学习资料lua学习资料

    本资源包是针对Lua语言的学习资料集合,旨在帮助初学者和进阶者深入理解并掌握Lua编程。 首先,从标题和描述中我们可以看出,这个资料包专门针对Lua学习,反复提及“lua学习资料”,表明其内容可能包括教程、示例...

    lua学习资料集锦

    这个"lua学习资料集锦"显然包含了丰富的资源,帮助初学者系统地学习和理解Lua语言。以下是一些关于Lua的基本知识点和核心概念: 1. **基本语法**:Lua具有简洁的语法,支持变量声明、流程控制(如if语句、for循环、...

    LUA脚本语言的实现C代码

    LUA脚本语言是计算机编程领域中的一种轻量级、高效且易于学习的脚本语言。它的设计目标是提供一种嵌入式应用的快速原型开发工具,尤其在游戏开发、服务器管理和自动化脚本等方面有着广泛的应用。LUA的源代码实现简洁...

    Lua使用大全(详细介绍Lua这个脚本语言)

    Lua因其小巧、高效和易于学习的特点,常被游戏开发者用于编写游戏逻辑、AI系统、UI控制等方面,如Cocos2d-x、Unity3D等游戏引擎都支持使用Lua作为脚本语言。 通过深入理解和掌握以上知识点,你将能够有效地利用Lua...

    Lua学习入门教程

    通过本文的学习,你已经掌握了Lua语言的基础知识。接下来,你可以尝试编写更复杂的程序,并深入探索Lua的高级特性,如函数式编程、面向对象编程等。Lua的灵活性和简洁性使得它成为许多应用场景的理想选择。希望你能...

Global site tag (gtag.js) - Google Analytics