日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Unity_Lua_语法基础

發(fā)布時(shí)間:2023/12/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity_Lua_语法基础 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

注釋:
寫一個(gè)程序,總是少不了注釋的。在Lua中,你可以使用單行注釋和多行注釋。

單行注釋:連續(xù)兩個(gè)減號(hào)“–”表示注釋的開始,直到行末為止。
多行注釋:由“–[[” 表示注釋開始,并 且一直延續(xù)到“–]]”為止。
快捷方式是Ctrl+k+c Ctrl+k+u

--print("hello world")--[[ function fact (n)if n == 0 thenreturn 1elsereturn n * fact(n-1)end end print("enter a number:") a = io.read() -- read a number print(fact(a)) --]]

暫停

os.execute("pause")

標(biāo)識(shí)符:
字母(letter)或者下劃線開頭的字母、下劃線、數(shù)字序列。最好不要使用下劃線加大寫字母的標(biāo)識(shí)符。

注意:Lua大小寫敏感。
合法的標(biāo)識(shí)符 非法標(biāo)識(shí)符
HelloWorld and(關(guān)鍵字)
_983 983(純數(shù)字)
_name hello world(特殊符號(hào))

保留字:
Lua語(yǔ)言中一些賦以特定的含義,用做專門用途的字符串。以下字符為L(zhǎng)ua保留字,不能當(dāng)做標(biāo)識(shí)符。

and break do else elseif end false for function if in local nil not or repeat return then true until
while

變量:
變量在使用前,必須在代碼中進(jìn)行聲明,即創(chuàng)建該變量。

編譯程序執(zhí)行代碼之前編譯器需要知道如何給語(yǔ)句變量開辟存儲(chǔ)區(qū),用于存儲(chǔ)變量的值。

Lua 變量有三種類型:全局變量、局部變量、表中的域。

Lua 中的變量全是全局變量,那怕是語(yǔ)句塊或是函數(shù)里,除非用 local 顯示聲明為局部變量。

局部變量的作用域?yàn)閺穆暶魑恢瞄_始到所在語(yǔ)句塊結(jié)束。

變量的默認(rèn)值均為 nil。

基本數(shù)據(jù)類型:
Lua是動(dòng)態(tài)類型語(yǔ)言,變量不用類型定義。(類型的檢查是在運(yùn)行時(shí)做的)
a=5
print(a)

Lua中定義了8個(gè)基本類型:
nil(空)、boolean、number(所有數(shù)值類型)、string、userdata、 function、thread和table

--region *.lua --Date --此文件由[BabeLua]插件自動(dòng)生成 --print("hello world") --關(guān)鍵字 function --then end 代替C#中的大括號(hào){} --注釋 多行注釋 --[[ function fact (n)if n == 0 thenreturn 1elsereturn n * fact(n-1)end end print("enter a number:") a = io.read() -- read a number print(fact(a)) --]]--nil類型 --[[ --輸出a的值 print(a) --輸出a的類型 print(type(a)) --]]--不需要聲明類型 動(dòng)態(tài)檢查變量類型 --不支持UTF8格式(漢字) --boolean類型 --[[ b = "" if (b) then print("true") else print("false") end --]]--number類型 --[[ a = 123 b = 1.23 c = 1.23456789 d = -123 print(type(a)) print(type(b)) print(type(c)) print(type(d)) --]]--string字符串類型 --[[ a = "asdf" b = 'asdf' --自動(dòng)將字符串當(dāng)數(shù)字操作 print("10"+1) print('10'+'1') --print("a"+1) --拼接時(shí)需要用..運(yùn)算符 print("a"..1) --轉(zhuǎn)義字符 c="asdf\nghjk" print(c) --]]--[[ --大小寫 a= 'aaBBccDD' print(string.upper(a)) print(string.lower(a)) --替換 print(string.gsub(a,'cc','zz',2)) --長(zhǎng)度 print(string.len(a)) --查找(下標(biāo)從1開始)(區(qū)分大小寫) print(string.find(a,'DD')) print(string.find(a,'dd')) --截取 print(string.sub(a,1,2)) --]]--function函數(shù)類型 --函數(shù)當(dāng)返回值 --[[ function Debug(a) print(a) end Debug("asdfasdg") a=Debug print(a) print(type(Debug))function Foo() return Debug endb =Foo --a("asdfasdg") print(b) --]] --函數(shù)當(dāng)為參數(shù)--[[ function Debug(a) print(a) endb=Debugfunction Foo(b) b("asdf") endFoo(b) print(Foo(b)) print(b) --]]--全局變量和局部變量 --只看有沒有l(wèi)ocal --[[ function Foo() a = 10 local b =20 endFoo()print(a) print(b) --]]--[[ --波浪等于感嘆號(hào) a= 10 b=20 if(a~=b)then print("a!=b") else print("a==b") end --]]--[[ --選擇結(jié)構(gòu) if(true)then print('AAA') endif (true)then print('true') else print("flase") enda=10 if(a<10)then print('aaa') elseif(a<20)then print('BBB') elseif(a<30)then print('CCC') end --]]--[[ --循環(huán)結(jié)構(gòu) while a=0 while(a<10)do a=a+1 print(a) end--do while a=0 repeat a=a+1 print(a) until(a==10) --]]--[[ --for語(yǔ)句 for i=0,100,3 do print(i) endfor i =0,100,1 do if (i%3==0)then print(i)end end--泛型循環(huán) a={5,6,4,3,} color ={"red","green","blue","black"} for k,v in ipairs(a) do print(k,v) endfor k,v in ipairs(color) do print(k,v) end --]]--[[ for i =0,10,1 doif(i==3)thenbreak--打斷整個(gè)--returnendprint(i) end --]]--[[ --ipairs 在遍歷的時(shí)候只能遍歷key為整數(shù)的 a={8,9,5,6,7} for key,value in ipairs(a) doprint(key,value) end --pairs 在遍歷的時(shí)候 不受任何影響 color ={aa="red",bb="green",cc="blue",dd="black"} for key,value in pairs(color) doprint(key,value) endcolor ={aa="red","green","blue","black"} for key,value in pairs(color) doprint(key,value) end --]]--[[ --遍歷 arr ={2,3,4,1} print(table.concat(arr,"==")) --插入 table.insert(arr,2,100) print(table.concat(arr,"==")) --移除 table.remove(arr,1) print(table.concat(arr,"==")) --排序 table.sort(arr) print(table.concat(arr," ")) --]]--[[ --數(shù)組模擬 arr ={21,23.45,-456,123465789798} arr[5] =132456 print(arr[2]) for key,value in pairs(arr) do print(key,value) end--字典模擬 color={r="red",g="green",b="blue"} print(color.b) print(color.g) color.a="alpha"for key,value in pairs(color) doprint(key,value) end --]]--[[ --list 模擬泛型 List ={"aa","bb","cc","dd"} function ListAdd(str)table.insert(List,str) endListAdd("ee") ListAdd("ff") print(table.concat(List," ")) function ListRemove(index)table.remove(List,index) end ListRemove(2) ListRemove(2) print(table.concat(List," ")) --]]--[[ Queue ={"aa","bb","cc","dd"} --入隊(duì) function Enqueue(str)table.insert(Queue,str) end --出隊(duì) function Dequeue()result =Queue[1]table.remove(Queue,1)return result endEnqueue("ee") print(table.concat(Queue," ")) Enqueue("ff") print(table.concat(Queue," ")) Dequeue() print(table.concat(Queue," ")) Dequeue() print(table.concat(Queue," ")) --]]--[[ --棧模擬 Stack ={"aa","bb","cc","dd"} --壓棧 function Pull(str)table.insert(Stack,str) end --出棧 function Push()lastIndex =Stack.lenresult =Stack[lastIndex]table.remove(Stack,lastIndex)return result endPull("ee") print(table.concat(Stack," ")) Pull("ff") print(table.concat(Stack," ")) Push() print(table.concat(Stack," ")) Push() print(table.concat(Stack," ")) --]]--[[ --閉包:函數(shù)嵌套的時(shí)候,內(nèi)部函數(shù)可以訪問外部函數(shù)的局部變量 function Foo()local a ="AAA"function Foo1()print(a)endFoo1() end Foo() --]]--string.find() --table.remove()--[[ MyMath ={} MyMath.Add =function (a,b)return a + bend MyMath.Sub =function (a,b)return a - bend --]] --[[ MyMath ={Add= function (a,b)return a + bend,Sub= function (a,b)return a - bend } --]]--[[ MyMath ={} function MyMath.Add(a,b)return a + b end function MyMath.Sub(a,b)return a - b endprint(MyMath.Add(1,1)) print(MyMath.Sub(2,2)) --]]--[[ --用表模擬委托 委托的實(shí)質(zhì) 是一個(gè)帶簽名的函數(shù)列表 Action ={} function AddListener(func)table.insert(Action,func) end function Invoke()for i = 1,3,1 doAction[i]()end enda = function() print("aa")end b = function() print("bb")end c = function() print("cc")endAddListener(a) AddListener(b) AddListener(c) Invoke() --]]--[[ --用表模擬對(duì)象 Weapon ={} Weapon.name ="Ak47" Weapon.attackDistance =20 Weapon.hurt=10 Weapon.Fire =function(hurtValue) print("Ak47 fire"..hurtValue) end Weapon.FireEffect =function() print ("AK47 fire effect")endprint(Weapon.name) Weapon.FireEffect() Weapon.Fire(Weapon.hurt) --]]--[[ --用表模擬實(shí)例化對(duì)象 CreateWeapon ={} --構(gòu)造器 CreateWeapon.Weapon =function(name,attackDistance,hurt)--local Weapon ={}Weapon.name ="Ak47"Weapon.attackDistance =20Weapon.hurt=10Weapon.Fire =function(name, hurtValue) print(name.."fire"..hurtValue) endWeapon.FireEffect =function(name) print (name.. " fire effect")endend ak47 =CreateWeapon.Weapon("ak47","20",10) m16 =CreateWeapon.Weapon("m16","30",30)ak47.FireEffect(ak47.name) ak47.Fire(ak47.name,ak47.attackDistance)--]]--using MyMath 相當(dāng)于一個(gè)代碼塊的引用 --引用過來的代碼塊 返回值是一張表 當(dāng)做對(duì)象來用 a = require("MyMath") print(a.Add(1,2)) print(a.Sub(1,2))a.PublicFoo() --a.PrivateFoo() a.PrivateFooEnter()--暫停 os.execute("pause") --endregion

總結(jié)

以上是生活随笔為你收集整理的Unity_Lua_语法基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。