您的位置:首页 > 编程语言 > Lua

Lua学习笔记---01

2015-09-23 13:59 381 查看
写在前面的话:Lua是一个脚本语言,嵌入别的语言中。详细的介绍大家自己百度一下Lua

值与类型

Lua 是一种 动态类型语言。这意味着变量没有类型,只有值才有类型。语言中不存在类型定义。而所有的值本身携带它们自己的类型信息。

Lua 中的所有值都是一致 (first-class) 的。这意味着所有的值都可以被放在变量里,当作参数传递到另一个函数中,并被函数作为结果返回。

八种基本类型: nil, boolean, number, string, function, userdata, thread, and table. Nil 类型只有一种值 nil; Boolean 类型只有两种值:false 和 true; nil 和 false 都能导致条件为假, 其他为真(这与Java等语言的区别在于0上)。

Lua 可以调用(和处理)用 Lua 写的函数以及用 C 写的函数。

userdata 类型用来将任意 C 数据保存在 Lua 变量中。

thread 类型用来区别独立的执行线程,它被用来实现 coroutine (协同例程)。不要把 Lua 线程跟操作系统的线程搞混。 Lua 可以在所有的系统上提供对 coroutine 的支持,即使系统并不支持线程。

table 类型实现了一个关联数组。也就是说,数组可以用任何东西(除了nil)做索引,而不限于数字。 table 可以以不同类型的值构成;它可以包含所有的类型的值(除 nil 外)。 table 是 lua 中唯一的一种数据结构;它可以用来描述原始的数组、符号表、集合、记录、图、树、等等。

table, function ,thread ,和 (full) userdata 这些类型的值是所谓的对象

语句

Chunk(语句组):Lua 的一个执行单元。通俗点说就是一串语句段。每个语句段可以以一个分号结束。不允许出现空的语句段,像;;这样就是非法的。

语句块:从语法上来说,一个语句块跟一个 chunk 相同. 可以使用do…end来显示的定义一个语句块。

赋值 :
test1 = "value1"; --简单的赋值语句


Lua支持多重赋值,例如
test2, test3 = "value2", "value3"; --等号左边放一系列变量,而等号右边放一系列的表达式


控制结构

if — if exp then block elseif exp then block else block end

while — while exp do block end

repeat — repeat block until exp

For 语句 — for varname = var1, var2, var3 do block end , 这里介绍的是最基本的for循环语法,其中 var1表示起始数,var2表示结束数,var3表示步长,若var3省略,表示步长为1, varname表示的是当前循环的数

局部变量 : 以local关键字申明,注:全局变量不需要关键字,直接申明

函数调用 : 与java等主流函数调用类似,如:

-- 定义一个函数
function fn1()
print("test");
end
-- 调用函数
fn1();


当然函数的调用还有别的高阶用法,可以自行百度。

表达式

函数

再论函数

迭代器

异常处理

function、closure和upvalue /article/2419843.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: