变量定义
name="小明"
age=16
heightXM=1.17
local weight=48
function tes()
weight2=52
print(weight2)
end
tes()
枚举
function CreatEnumTable(tbl,index)
local enumtbl = {
}
local enumindex=index or 0
for i,v in ipairs(tbl) do
enumtbl[v]=enumindex+i
end
return enumtbl
end
Enumtable={
"Red",
"Green",
"Blue",
}
Enumtable=CreatEnumTable(Enumtable)
print(Enumtable.Green)
结构体和类
student={
age=18,
sex="girl",
up=function()
local age2=12
print("小明")
end
}
print(student.age)
student.age=22
print(student.age)
student.name = "小"
print(student.name)
student.play=function()
print("play game")
end
student.play()
function student.play2()
print("play other game")
end
student.play2()
Teacher={
page=30,
Teach=function()
print('大家把书翻到'..Teacher.page..'页')
end,
Learn=function(t)
print(t.page)
print('好好学习')
end
}
Teacher.Teach()
Teacher.Learn(Teacher)
Teacher:Learn()
Teacher:Teach()
可空判断
local person={
name="Nemo",sex="Female"}
person=nil
if person~=nil and person.name~=nil then
print(person.name)
else
print("没有这个值")
end
local next=next
local a={
}
local b={
name="Bob",sex="Male"}
local c={
"Trump","Evake"}
local d=nil
if a==nil then
print('a=nil')
end
if b==nil then
print('b=nil')
end
if c==nil then
print('c=nil')
end
if d==nil then
print('d=nil')
end
function isTableEmpty(t)
return t==nil or next(t)==nil
end
print(next(b))
print(isTableEmpty(a))
字符串
repStr=string.rep("hello everyone\n",2)
print(repStr)
str1 = "You are very handsome"
str2 = "I am very rich"
str3 = "I am very rich"
str4 = "I am very handsome"
compareStr=string.match(str3,str4)
print(compareStr)
function Equals(str1,str2)
comStr=string.match(str1,str2)
if comStr==nil then
return false
else
return true
end
end
result=Equals(str1,str2)
print(result)
BaseStr="Hello everyone"
NewStr="every"
Str=string.find(BaseStr,NewStr)
print("起始位置:"..Str)
BaseStr2="Hello my name is BUG"
local first_sub=string.sub(BaseStr2,7,13);
print(first_sub)
local back_sub=string.sub(BaseStr2,-11,-5)
print(back_sub)
local first_sub2=string.sub(BaseStr2,6,100)
print("下标越界截取测试:"..first_sub2)
local back_sub2=string.sub(BaseStr2,-100)
print("下标越界截取测试:"..back_sub2)
function Split(input,delimiter)
input=tostring(input)
delimiter=tostring(delimiter)
if delimiter=="" then
return false
end
local pos,arr=0,{
}
for st,sp in function()
return string.find(input,delimiter,pos,true) end do
table.insert(arr,string.sub(input,pos,st-1))
pos=sp+1
end
table.insert(arr,string.sub(input,pos))
return arr
end
local testStr="10+20+100"
print(unpack(Split(testStr,'+')))
function splitWhile(input,delimiter)
if type(delimiter)~="string"or#delimiter<=0 then
return
end
local start=1
local arr={
}
while true do
local pos=string.find(input,delimiter,start,true)
if not pos then
break
end
table.insert(arr,string.sub(input,start,pos-1))
start=pos+string.len(delimiter)
end
table.insert(arr,string.sub(input,start))
return arr
end
print(unpack(splitWhile(testStr,'+')))
print('www.bilibili'..'.com')
str5="i am your dj"
print(string.len(str5))
print(#str5)
str="i am dj er dsds vcvc asad"
str2=string.gsub(str,"a","o",2)
print(str2)
function trim(s)
return(string.gsub(s,"^%s*(.-)%s*$","%1"))
end
print(trim(" sadadadas ").."ss")
function string_insert(str,index,insertStr,flag)
if flag and string.find(str,flag)~=nil then
index=index+#flag
end
local pre=string.sub(str,1,index-1)
local tail=string.sub(str,index,-1)
local createStr=string.format("%s%s%s",pre,insertStr,tail)
return createStr
end
str="i am dj er dsds vcvc asad"
print(string_insert(str,2,"not"))
function LuaRemove(str,remove)
local lcSubStrTab={
}
while true do
local lcPos=string.find(str,remove)
if not lcPos then
lcSubStrTab[#lcSubStrTab+1]=str
break
end
local lcSubStr=string.sub(str,1,lcPos-1)
lcSubStrTab[#lcSubStrTab+1]=lcSubStr
str=string.sub(str,lcPos+1,#str)
end
local lcMergeStr=""
local lci=1
while true do
if lcSubStrTab[lci] then
lcMergeStr=lcMergeStr..lcSubStrTab[lci]
lci=lci+1
else
break
end
end
return lcMergeStr
end
str="@ds @ dsd dsds @ @@ sdada"
local newStr=LuaRemove(str,"@")
print(newStr)
str="I am YOUR Dj"
print("小写转换:"..string.lower(str))
print("大写转换:"..string.upper(str))
str="I am your Dj"
print("字符串转ASCII码:"..string.byte(str,2))
print("ASCII码转字符串:"..string.char(65))
运算符
a=21
b=10
d=3
c=a+b
print("测试:a+b="..c)
c=a-b
print("测试:a-b="..c)
c=a*b
print("测试:a*b="..c)
c=a/b
print("测试:a/b="..c)
c=a%b
print("测试:a%b="..c)
c=b^d
print("测试:b^d="..c)
if a==b then
print("a等于b")
end
if a~=b then
print("a不等于b")
end
if a>b then
print("a大于b")
end
if a<b then
print("a小于b")
end
a=true
b=false
if a and b then
print("a和b都为真")
end
if a or b then
print("a和b至少有一个为真")
end
if not(a and b) then
print("a和b至少有一个为假")
end