lua支持在多种平台下进行安装,具体安装参考《Windows下编写Lua程序》,在linux下安装参考 《linux下运行lua程序》
安装成功之后,可以了解下Lua 的基本语法,对于有过一门编程语言经验的朋友来讲,学习lua的基本语法也是非常简单的。
1、定义变量
lua在定义变量上非常类似于js,不需要声明变量类型,直接使用关键字 local 来定义变量,如
(1)基础变量
local a = 10; -- number
local b = "hello"; -- 字符串
local c = 10.5; -- number
local d = true; -- boolean
local e = nil; -- 什么也没有
基础的变量就像上面了,除了一些基础的变量,还有数组、字典等复杂对象
(2)数组
数组的定义和Java区别较大,在Java中可以通过【】中括号的形式定义,在lua中不可以,需要使用{}大括号来定义。
-- 错误的定义方法
local f = ["a","b","c"];
-- 正确的数组定义方法
local g = {"a", "b", "c"}
在lua中本身是不存在数组这个数据类型的,数组是下面要说的字典数据类型的一个特殊形式。如果我们直接输出数组的值也可以发现本身就是一个字典。
特别注意:取值是从1开始,而不是从0开始
(3)字典
字典类似于Java中的Map,存储的是K-V 的数据,定义如下:
local h = {age="10", name="孙悟空"};
2、运算符
运算符这里就说一个,就是关于除法,这个除法并不是整除,也会有小数
local i = 30/10;
local j = 30/12;
local k = 25 / 3;
print(i); -- 3
print(j); -- 2.5
print(k); -- 8.3333333333333
3、函数
lua的函数支持多个返回值,这里要慎重。
-- 无参无返回值
function hello()
print("Hello");
end;
hello(); -- Hello
-- 有参无返回值
function hello(name)
print(name);
end;
hello("猪八戒"); -- 猪八戒
-- 有参有单个返回值
function re(name)
return "hello" .. name;
end;
local l = re('沙和尚');
print(l); -- hello沙和尚
-- 有参有多个返回值
function re2(name)
return 'hello', name;
end;
local m,n = re2('唐僧');
print(m .. n); -- hello唐僧
4、流程控制语句
(1)条件语句 if
在lua中,条件语句只有if,没有switch,语法如下
local age = 10;
if age < 5 then
print("age 小于 5");
elseif age >= 5 and age <10 then
print("age >= 5 并且 小于 10");
else
print("age >=10");
end;
(2)循环语句while
注意:lua没有 += 运算符 也没有 ++ 运算符。
注意:while后跟的不是then,是do
local i = 0;
local sum = 0;
while(i <= 100) do
sum = sum + i;
i = i + 1;
end;
print(sum);
(3)循环语句for
<1> 基本for循环
-- 第一个参数是循环的起始值
-- 第二个参数是循环的终止值
-- 第三个参数是每次的步长
-- [1,10] 是包含头也包含尾的
for num = 1,10,2 do
print(num); -- 1 3 5 7 9
end;
<2> 迭代循环,数组和字典
数组和字典的循环方式相同,都是通过pairs函数,将字典打散,没一个循环项的值赋给前面定义好的变量中。看例子就明白了。
local g = {"a", "b", "c"}
print("===================");
for k, v in pairs(g) do
print (k .. ':' .. v);
end;
print("===================");
执行结果:
===================
1:a
2:b
3:c
===================
local h = {age="10", name="孙悟空"};
print("===================");
for k, v in pairs(h) do
print (k .. ':' .. v);
end;
print("===================");
执行结果:
===================
age:10
name:孙悟空
===================