发布于 2017-02-18 07:45:00 | 39 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Lua教程,程序狗速度看过来!

Lua 脚本语言

Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的GIT项目,提供在特定平台上的即时编译功能。


这篇文章主要介绍了Lua表达式和控制结构学习笔记,本文讲解了算术操作符、关系操作符、逻辑操作符、局部变量与作用域、控制结构等内容,需要的朋友可以参考下

算术操作符

Lua 的算术操作符有:

"+"(加法):


print(1 + 2)

"-"(减法):


print(2 - 1)

"*"(乘法):


print(1 * 2)

"/"(除法):


print(1 / 2)

"^"(指数):


print(27^(-1/3))

"%"(取模):


print(5 % 3)

关系操作符

Lua 提供以下关系操作符:


< > <= >= == ~=

以上操作符返回的运算结果都是 true 或 false。字符串跟数字不可以进行比较

逻辑操作符

逻辑操作符有 and、or、not


print(1 and 2)
print(nil and 1)
print(false and 2)
print(1 or 2)
print(false or 5)

逻辑操作符将 false 和 nil 视为假,其它的为真。

局部变量与作用域

Lua 通过 local 语句来创建局部变量,局部变量的作用域仅限于声明它们的那个块。


local a, b = 1, 10
if a < b then
    print(a)
    local a
    print(a)
end
print(a, b)

用局部变量 local 保存全局变量,可以加速在当前作用域中对全局变量的访问。对于加速的效果,对比下面计算 斐波那契数列(Fibonacci)的执行胜博發便知:


function fibonacci(n)
    if n < 2 then
        return n
    end
    return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")

使用局部变量 local


local function fibonacci(n)
    if n < 2 then
        return n
    end
    return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")

控制结构

if then elseif else end


if num == 1 then
    print(1)
elseif num == 2 then
    print(2)
else
    print("other")
end

Lua 不支持 switch 语句

while

先判断 while 条件,如果条件为真,继执行循环体,否则结束


local i = 1
while a[i] do
    print(a[i])
    i = i + 1
end

repeat-until

先执行一次循环体,再判断条件,如果条件为真则退出循环体,否则继续执行循环体。类似其它语言的 do-while 语句,循环体至少会执行一次


local a = 1
repeat
    a = a + 1
    b = a
    print(b)
until b < 10

for 循环

for 循环语句有两种形式:数字型for(numeric for)、泛型for(generic for)

数字型 for 语法:


for start, end, step do
    doing something
end

start 是开始值,end 是结束值,step是步长(可选,默认为1)


for a = 10, 0, -2 do
    print(a)
end

泛型 for 循环通过一个迭代器(iterator)函数来遍历所有值:


tab = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab) do
    if k == "key2" then
        break   
    end
    print(k .. " - " .. v)
end

break 和 return 语句用于跳出当前执行的块。



相关阅读 :
Lua表达式和控制结构学习笔记
Lua中的元表和元方法学习笔记
Lua中的闭包学习笔记
Lua字符串库(string库)学习笔记
Lua中的控制结构(流程控制)简明总结
Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
Lua学习笔记之运算符和表达式
Lua中的变量和流控制入门学习
Lua中的string库和强大的模式匹配学习笔记
Lua学习笔记之表达式
Lua学习笔记之数据结构
Lua学习笔记之表和函数
最新网友评论  共有(0)条评论 发布评论 返回顶部
月排行榜

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  服务