运算符
Lua语言提供了几种基本的运算符类型
- 关系运算符
- 算数运算符
- 逻辑运算符
- 其他运算符
下面针对这几种运算符进行讲解
- 关系运算符
关系运算符 | 说明 |
---|---|
== | 等于,判断两个值是否相等,相等返回true,不等返回false |
~= | 不等于,判断两个值是否相等,相等返回false,不能返回true |
> | 大于,如果左边的值大于右边的值,返回true,否则返回false |
< | 小于,如果左边的值小于右边的值,返回true,否则返回false |
>= | 大于等于,如果左边的值大于等于右边的值,返回true,否则返回false |
<= | 小于等于,如果左边的值小于等于右边的值,返回true,否则返回false |
示例:
local num1 = 10
if num1==10 then
print("等于10")
end
if num1~=5 then
print("不等于5")
end
if num1>1 then
print("大于1")
end
if num1<20 then
print("小于20")
end
if num1>=10 then
print("大于等于10")
end
if num1<=10 then
print("小于等于10")
end
- 算数运算符
算数运算符 | 说明 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取余 |
^ | 乘幂 |
- | 负号 |
示例:
local num1 = 2
local num2 = 2
print("相加=" , num1+num2)
print("相减=" , num1-num2)
print("相乘=" , num1*num2)
print("相除=" , num1/num2)
print("取余=" , num1%num2)
print("乘幂=" , num1^num2)
print("负数=" , -num1)
- 逻辑运算符
操作符 | 说明 |
---|---|
and | 逻辑与,左边和右边任一为false,则为false,全部为true,则为true |
or | 逻辑或,左边和右边任一为true,则为true,全部为false,则为false |
not | 逻辑非,右边条件的反结果,若右边条件为true,则结果为false,条件若为false,则结果为true |
示例:
local flag1 = true
local flag2 = true
local flag3 = false
if flag1 and flag2 then
print("结果为真")
end
if flag1 and flag3 then
print("结果为假")
end
if flag1 or flag2 then
print("结果为真")
end
if flag1 or flag3 then
print("结果为真")
end
if not flag1 then
print("不打印结果")
else
print("打印结果")
end
if not flag3 then
print("打印结果")
else
print("不打印结果")
end
- 其他运算符
操作符 | 说明 |
---|---|
. . | 两个点,连接字符串 |
# | 一元运算符,返回字符串的长度 |
示例:
local str1 = "hello"
local str2 = "Lua"
print(str1 .. str2)
print(#str1)
连接字符串除了两个点之外,还可以使用string函数的format,具体会在后续讲解。
local str1 = "hello"
local str2 = "Lua"
print(string.format("%s%s" , str1 , str2))
print(string.format("%s-%s" , str1 , str2))
- 运算符优先级
操作符 |
---|
^ |
not # - |
* / % |
+ - |
. . |
< > <= >= == ~= |
and |
or |
以上为几种运算符内容,下面讲解函数。
函数
Lua中函数是一种对语句和表达式进行抽象的主要机制,使用函数的好处有:
- 降低程序的复杂性,函数作为独立模块,只需要关心功能,而无需关心具体细节。
- 增加程序可读性。
- 避免重复代码。
- 隐藏局部变量。
- 函数定义
function function_name (args)
--dosometing
end
示例:
function sum(x , y)
return x+y
end
local sum_num = sum(1,2)
print("求和=",sum_num)
注意:在使用函数前必须先定义,否则无法找到对应函数。