基础第一部分
——————————————————————————————————————————————————————————————————————————————了解编程语言的人很容易看懂lua的语句和代码下面是第一部分的基础
2.lua的类型和值:
⑴nil 全局变量没赋值以前编译器默认的值,要删除一个变量就给其赋nil;
⑵Booleans (false, true)Lua中编译器默认false和nil为假,其他都为真包括0和空串!
⑶Numbers 表示实数,Lua中无整数numbers可以处理任何长度整数不必担心误差!
⑷Strings 类似c中的char,Lua自动给该类型的数据分配和释放内存,可以用单引号或双引号表示字符窜(最好就使用一种)
注:Lua会自动在numbers和strings之间转化一般用算术运符连接
例子:
print(“10“ + 1) ――> 11
可以显式地将数字转化成字符 tostring()函数
Print(tostring(10)==“10“) ――> true
⑸function, userdata, threads 在以后用到的时候再强调!学习最好的方法是使用
――――――――――――――――――――――――――――――――――――——————————————————————————————————————
3表达式
(1)算术运算符:1)二元 + - * / ^ (加减乘除幂)
2)一元运算符 -(负值)
说明:/ lua中的除和C语言中不同 含有小数部分就是算术中的除!因为操作数都是实数!
(2)关系运算符:仅有一个和C语言不同就是 ~= 相当于C语言中的 !=
Lua中两个值的类型不同,Lua就认为两者不同,nil只与自己相等,简而言之就是:当且仅当两者表示同一个对象时相等。
(3)逻辑运算符
and or not
上面已经强调了只有nil和false为假,其他都是真,
实用技巧 : y = y or x (如果y为假的话,就把x赋值给y)
And 优先于 or
(4) 连接运算符
“..” ――两个点 使用时前后都要加空格
以上运算符的优先级:
^ ―> not ―> * / ―> + - ―> .. ―> 逻辑运算符 ―> and―> or
^ 和 .. 是右结合的,其他都是左结合
——————————————————————————————————————————————————————————————————————————————
4基本语法
1) 赋值
A = 34 .. 35
print(A) ――> 3435
变量个数大于值的个数 多余的变量默认赋值nil
变量个数小于值的个数 多余的值自动被忽略
A , B , C = 12, 34
Print(A, B, C) ――> 1234nil
多值赋值用来交换变量如下
A, B = B, A
Print(A, B) ――> 3412
还可以接受函数的返回值
A , B = function()--function()返回两个值
2)局部变量与代码块
Local 修饰局部变量,只能在被声明的代码块内有效(代码块指的是一个控制结构内,一个函数体,或者是一个Chuck)
好处:(1).避免命名冲突
(2).访问局部变量的速度比全局变量要快
3)控制结构语句
控制结构语句的条件表达式结果可以是任何值
格式如下:
if condtions then
then-part
end;
if condtions then
then-part
else
else-part
end;
if condtions then
tnen-part
elseif condtions then
elseif-part
…….
else
else-part
end;
while condtions do
Statements;
end;
repeat
Statements;
until conditions;
注:for有两类
(1)数值类默认step是1
(2)控制变量时局部变量,如果需要保存必须在循环中保存
(3)循环中不要改变控制变量的值
(4)范式for返回遍历迭代式函数的每一个值也有(2的前半部分,3)的性质。
Array = {1, 2, 3, 4, 5, 6, 7,}
For i, v int ipair(Array) do print(v) end ――> (1 2 3 4 5 6 7 )’
4) break 和 return 使用方法和C语言中类似 位置Chuck的最后一句,end,else,until之前。
——————————————————————————————————————————————————————————————————————————————
5. 函数 用途: 1)完成指定的任务 2)计算并返回值
语法:function func_name (arguments-list)
Statements-list;
end;
实例:function add(a , b)
local x;
x = math.cos(a) + math.sin(b)
return x
end
print(add(0,0))
Lua使用的函数可以是Lua编写的也可以是其他语言编写的。Lua函数的实参和形参匹配和赋值语句类似,多的部分被忽略,少的部分用nil补足!使用方法和C语言相同
Function f(a, b) return a or b end
CALL PARAMETERS
F(3) -------------- a = 3 , b = nil
F(3, 4 ,5) ----------------- a = 3, b = 4 (5 省略)