现在的位置: 首页 > 综合 > 正文

lua学习初探【一】

2017年12月22日 ⁄ 综合 ⁄ 共 1652字 ⁄ 字号 评论关闭
文章目录

一,搭建环境:

          工具:UItraEdit

          需要的两个文件:

          添加到Path系统变量中:

          就是有lua.exe的那个目录

        

          出现

表示环境变量添加成功

在UItraEdit中添加配置

然后第一个HelloWorld,运行

二,语法基础

(1) Lua的保留字,不能当作标识符。

and; break; do; else; elseif; end;false; for; function; if; in; local; nil; not; or; repeat; return; then; true;until; while;

(2) Lua是大小写敏感的。

1,注释

单行注释   --

多行注释  --[[  ]]--

-- 单行注释
--[[多行
注释
--]]

--[=[
	包含--[[
	--]]的注释
--]=]

2,基础类型

内容决定类型,

nil,    空

boolean, 除了false和nil,其他均被判断为false

number, 常用函数 math.round,math.floor

string,

userdata,

function,

thread,

table

取字符串操作

#

连接符

1>..表示字符串连接,number类型都会转换成字符串,注意第一个字符串后必须要接一个空格,例如: "10" .. 1

2>+把两边操作数转换成number,然后进行加法运算。

text = "10" .. 1
print(text)
text = 10 .. "1"
print(text)
text = 10 .. 1
print(text)
text = "Hello" .. "World"
print(text)
text = "10" + "1"
print(text)
text = 10 + "1"
print(text)
text = "10" + 1
print(text)
text = 10 + 1
print(text)

控制台输出:

101
101
101
101
11
11
11
11

3,表达式

Lua中的表达式包括:数字常量、字符串常量、变量、一元和二元运算符、函数调用。

(1) 算术运算符

二元运算符:+ - * /^ 加减乘除幂

一元运算符:- 负值

这些运算符的操作数都是实数。

(2) 关系运算符

<  >   <=   >=   ==   ~=

(3) 逻辑运算符

and  or   not

注意:

逻辑运算符认为false和nil是假(false),其他为真(0也是真)。

a and b

如果a为false,则返回a,否则返回b

a or b

如果a为true,则返回a,否则返回b

在Lua中:

(A and B) or C  相当于java中的 a?b:c

not的结果一直返回false或者true。

(4) 连接运算符

..   两个点

4,方法

-- function
text = function(n)
	print("Function")
	--text() -- 错误
end

function text(n)
	print("Function")
	--text(n)	-- 正确
	return text(n)	-- 尾消除lua:尾调用是一种类似在函数结尾的goto调用,当函数最后一个动作是调用另外一个函数时,称这种调用为尾调用。
end

n  控制结构语句

(1) if有3种形式

(2) while语句

(3) repeat-until语句

(4) for有2种形式

A: 数值for循环

for var = exp1, exp2, exp3 do

Loop-part

end

for将用exp3作为step从exp1(初始值)到exp2(终止值),执行loop-part。其中,exp3可以忽略,默认step = 1。

注意:

(1) for中的三个表达式只会被计算一次,并且是在循环开始前。

(2) 控制变量var是局部变量自动被声明,并且只在循环内有效。

(3) 如果需要保留控制变量的值,需要在循环中将其保存。

(4) 循环过程中不要改变控制变量的值,那样做的结果是不可预知的。如果要退出循环,使用break语句。

B:范型for循环

for i, val in ipairs(a) do print(v) end

范型for遍历迭代子函数返回的每一个值(val)

抱歉!评论已关闭.