Lua 基础之运算符

算术运算符

lua 的算术运算符有加减乘除、n次方(或开方)、求余等。

--算术运算符
print(1.2 ^ 2)      --1.2的平方
print(3 ^(-1 / 3))  --根号3分之一
print(1.2 % 3)      --1.2
a=math.pi
print(a - a % 0.01) --3.14

关系运算符

lua 的关系运算符有 > >= < <= == ~=。

--关系运算符
print(10.1 > 10.01)
print(10 >= 10)
print(10 <= 10)
print(10 == 10)
print(10 ~= "10")  --true
print(false ~= nil)    -- true
a = { 1, 2 }
b = { 1, 2 }
c = a
print(a == b)   --false
print(a == c)   --true

逻辑运算符

--逻辑运算符
--and和or都是短路操作
function compare(a,b)
    print("compare do")
    return a > b
end

--不调用compare函数
if false and compare(10,5) then
    print("10>5")
else
    print("not compare")
end

--不调用compare函数
if true or compare(10,5) then
    print("10>5")
else
    print("no compare")
end

--调用compare函数
if false or compare(10,5) then
    print("10>5")
else
    print("no compare")
end

print(nil or true)  --true
print(true and nil) --nil
print(nil or false) --false
print(not nil)      --true

a=100
b=101
--a>b ? a : b 前提是a不为空
x = a > b and a or b
print(x)

table构造式{}

--table构造式
array = { "mon", "tes", "wed", "thu", "fri" }
print(array[#array])
dict = { name = "lin", age = 18, sex = "boy" }
print(dict["age"])
--使用table构造链表
content = { "red", "blue", "green", "yellow" }
list = nil
for i=1,#content do
    list = { text = content[i], next = list }
end
while list do
    print(list.text)
    list=list.next
end
--使用table构造结构体
stc={
color="red",
size=18,
{x=0,y=1}
}
print(stc.color)
print(stc[1].x, stc[1].y)
print(#stc) --1

你可能感兴趣的:(Lua)