lua语法

2023-12-18 19:18:15

lua语法

1.lua数据类型

基本语法

注释

print("script lua win")

-- 单行注释

--[[

多行注释

]]--

标识符

类似于:java当中 变量、属性名、方法名。

以字母(a-z,A-Z)、下划线 开头,后面加上0个或多个 字母、下划线、数字。

不要用下划线+大写字母。

保留字。

总结一点:按照正常思维命名即可。

全局变量

print(a) -- nil
a=1
print(a)
a=nil --销毁a
print(a)

nil

没有任何有效值,就是一个 nil。 可以用于删除

print("---delete---")
-- 定义一个table
myTab = {key1="value1",key2="value2"}
for k,v in pairs(myTab) do
	print(k.."_"..v)
end

print("---after delete---")
myTab.key1=nil
for k,v in pairs(myTab) do
	print(k.."_"..v)
end

print("---判断是否为nil")
print(x) -- nil
print((type(x)==nil)) -- false
print(type(x)=='nil') -- true

image-20231215163327032

boolean

lua会将false(false\nil) 看做是false, 其他的都看做是 true(其他都为true,包括0)

print("---boolean---")

print(type(true))  -- boolean
print(type(false)) -- boolean
print(type(nil))  -- nil

if false or nil then
	print("nil被当为true")
else
	print("nil为false") -- false
end

print("---测试0---")
if 0 then 
	print("0 是true") -- true
else 
	print("0 是false")
end

number

双精度(8个字节)。

print("---------测试number-------------")
a = 10
print(type(a))

String

字符串用单引号或双引号来表示。

print("双引号字符串")

print("单引号字符串")

用 [[可以换行的字符串 ]]

i = [[

我是中国人,

我爱我的祖国!

]]

print(i)

字符串和数字进行数学运算,优先将 字符串 转 成 数字。

print("1" + 2) -- 3

print("1" + "2") -- 3

print("1+2") -- 1+2

-- 非数字的字符串和数字进行计算,则会报错-- lua: string.lua:1: attempt to perform arithmetic on a string value
print("error"+1)

字符串连接

-- error1
print("error"..1)

计算字符串长度(#字符串)

testLenth = "abcde"

print("testLenth的长度为:"..#testLenth)

table

类比成java当中:数组,map,链表,队列等。

table的key的索引,从1开始。

print("---------测试 table-------------")
tab1 = {}

tab2 = {"a","b","c"}

tab3 = {key1="value1", key2 = "value2"}
print("tab3-:")
for k,v in pairs(tab3) do
 print(k.."="..v)
end 
print("tab3:")

tab1["a_key"]="a_value"
for k,v in pairs(tab1) do
 print(k.."="..v)
end 

for k,v in pairs(tab2) do
 print(k.."="..v)
end 
-- table的key的索引,从1开始。
-- 1=a
-- 2=b
-- 3=c


-- 删除table中的元素
print("tab3-:")
tab3["key2"] = nil
for k,v in pairs(tab3) do
 print(k.."="..v)
end 
print("tab3:")

function

阶乘:

function factorial(n)
 if n == 0 then
 return 1
 else
 return n * factorial(n - 1)
 end
end
testFac = factorial
print("6的阶乘结果:"..testFac(6))

匿名函数

print("------------匿名function-------------")
-- 定义函数
function testPrint(tab, func)
 for k,v in pairs(tab) do
 print(func(k,v))
 end
end

-- 定义数组调用函数
tab1 = {"a","b","c"}
testPrint(tab1,
 function(k,v)
 return k.."="..v
 end
)

文章来源:https://blog.csdn.net/qq_44981526/article/details/135065442
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。