JavierShare的笔记04——基础Lua语言

Posted JavierShare

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavierShare的笔记04——基础Lua语言相关的知识,希望对你有一定的参考价值。

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放



这是JavierShare的第 4 篇原创文章

          


这一期笔记写一下Lua语言的基础语法。有许多接触过其他C类型的语言的人,会发现其实大部分语言都和C差不多,Lua也一样,只是小部分不同罢了,所以对我来说,那些想要去了解语言的人,自然会去学习和深入了解,水平高的人,也大有人在,所以我的知识会不吝啬得分享出来,所以且行且珍惜吧~( 看的人少:) )


开始。


01


Print("Hello World")  代码间无分号。


age = 100    变量直接申明,不用类型。

name="Javier"   尽量避免_下划线开头

isMan=True 


-- 这是单行注释  单行注释

--[[中间代码内容]]-- 多行注释


nil 表示空数据,等同于null


myTable={1,2,3,4,5}  数组  索引是从1开始,C是0开始

myTable=[3]  数组第三项


type()  可以获取类型


Tips:最默认定义得变量都是全局的,定义局部变量需要加一个local



02



算数运算符 + - * / %   Lua中没有++  --自加运算符

关系运算符 <=  <  >  >=  ==  

逻辑运算符 and(与) or(或)   not(非)



03



if循环


local hp = 0

if hp<=0 then

   print("player is die")

end


local hp = 100

if hp<=0 then

 print("player is die")

elseif hp>=50 then

   print("player is good")

end


local hp = 50

if hp<=0 then

   print("player is die")

elseif hp>=50 then

   print("player is good")

else

   print("player is bad")

end



Tips:这里elseif 一定要连写,只要有if 后面一定要跟then。

         


04



while和repeat和for循环


index=1

while index<=100 do 

print(index)

index=index+1

end


sum=0

index=1

while index<=100 do 

sum = sum +index

index=index+1

end


sum=0

index=1

while index<=100 do 

if index%2==1  then

sum = sum +index

end

index=index+1

end



repeat循环(相当于C#里的do)


index=1

repeat

print(index)

index = index+1

until index>100


sum=0

index=1

repeat

sum=sum+index

index = index+1

until index>100

print(sum)


sum=0

index=1

repeat

if index%2==1  then

sum=sum+index

end

index = index+1

until index>100

print(sum)


for循环


for index=1,100   do

print(index)

end


sum=0

for index=1,100   do

sun=sum+index

end


sum=0

for index =1,100  do

if  index%2==1  then

sum=sum+index

end

end


Tips:break 可以终止循环,没有continue语法。



05



方法


function Plus(num1,num2)

return num1+num2

end


res = Plus(1,2)

print(res)




Lua标准库


一般用math.abs.cos.max.maxinteger.min.random.sin.sqrtt.tan

string.byte.char.find.format.lower.sub.upper


tostring()  把一个数字转化成字符串

tonumber() 字符串转数字



myTable[]={}

myTable["name"]="apple"

myTable.name="apple"  会覆盖上面


myTable = {name="apple",age=18,isMan=false}


myTable={3,3,3,3,3,3,"dadsa"}


遍历


1.如果只有数字键,并且是连续的。

Scores={1.2.3.4.6}


for index=1,table.getn(scores)  do

prit(scores[index])

end


2.所有表都可以输出

for(index,value in pairs(Scores)  do

print(index,value)

end


table.concat,insert.move.pack.remove.sort.unpack



06



面向对象


Enemy={}

local this = Enemy

Enemy.hp=100

Enemy.spend=10


Enemy.Move=function()

print("移动")

end


function Enemy.Attack()

print(this.hp,"attack")

this.Move()

end



Enemy.Attack()  --调用



Keep Active


以上是关于JavierShare的笔记04——基础Lua语言的主要内容,如果未能解决你的问题,请参考以下文章

Lua 语法基础 | Nmap 脚本

Lua语言学习笔记

Lua+luasocket笔记

lua学习笔记

lua学习笔记

VRP-Lua学习笔记