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中本身是不存在数组这个数据类型的,数组是下面要说的字典数据类型的一个特殊形式。如果我们直接输出数组的值也可以发现本身就是一个字典。

lua 将数组中置顶元素置顶 lua定义数组_运算符

特别注意:取值是从1开始,而不是从0开始

lua 将数组中置顶元素置顶 lua定义数组_运算符_02

(3)字典

字典类似于Java中的Map,存储的是K-V 的数据,定义如下:

local h = {age="10", name="孙悟空"};

lua 将数组中置顶元素置顶 lua定义数组_运算符_03

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:孙悟空
===================