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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity_Lua_语法基础

發布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity_Lua_语法基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

單行注釋:連續兩個減號“–”表示注釋的開始,直到行末為止。
多行注釋:由“–[[” 表示注釋開始,并 且一直延續到“–]]”為止。
快捷方式是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")

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

注意:Lua大小寫敏感。
合法的標識符 非法標識符
HelloWorld and(關鍵字)
_983 983(純數字)
_name hello world(特殊符號)

保留字:
Lua語言中一些賦以特定的含義,用做專門用途的字符串。以下字符為Lua保留字,不能當做標識符。

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

變量:
變量在使用前,必須在代碼中進行聲明,即創建該變量。

編譯程序執行代碼之前編譯器需要知道如何給語句變量開辟存儲區,用于存儲變量的值。

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

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

局部變量的作用域為從聲明位置開始到所在語句塊結束。

變量的默認值均為 nil。

基本數據類型:
Lua是動態類型語言,變量不用類型定義。(類型的檢查是在運行時做的)
a=5
print(a)

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

--region *.lua --Date --此文件由[BabeLua]插件自動生成 --print("hello world") --關鍵字 function --then end 代替C#中的大括號{} --注釋 多行注釋 --[[ 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)) --]]--不需要聲明類型 動態檢查變量類型 --不支持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' --自動將字符串當數字操作 print("10"+1) print('10'+'1') --print("a"+1) --拼接時需要用..運算符 print("a"..1) --轉義字符 c="asdf\nghjk" print(c) --]]--[[ --大小寫 a= 'aaBBccDD' print(string.upper(a)) print(string.lower(a)) --替換 print(string.gsub(a,'cc','zz',2)) --長度 print(string.len(a)) --查找(下標從1開始)(區分大小寫) print(string.find(a,'DD')) print(string.find(a,'dd')) --截取 print(string.sub(a,1,2)) --]]--function函數類型 --函數當返回值 --[[ 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) --]] --函數當為參數--[[ function Debug(a) print(a) endb=Debugfunction Foo(b) b("asdf") endFoo(b) print(Foo(b)) print(b) --]]--全局變量和局部變量 --只看有沒有local --[[ function Foo() a = 10 local b =20 endFoo()print(a) print(b) --]]--[[ --波浪等于感嘆號 a= 10 b=20 if(a~=b)then print("a!=b") else print("a==b") end --]]--[[ --選擇結構 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 --]]--[[ --循環結構 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語句 for i=0,100,3 do print(i) endfor i =0,100,1 do if (i%3==0)then print(i)end end--泛型循環 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--打斷整個--returnendprint(i) end --]]--[[ --ipairs 在遍歷的時候只能遍歷key為整數的 a={8,9,5,6,7} for key,value in ipairs(a) doprint(key,value) end --pairs 在遍歷的時候 不受任何影響 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," ")) --]]--[[ --數組模擬 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"} --入隊 function Enqueue(str)table.insert(Queue,str) end --出隊 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," ")) --]]--[[ --閉包:函數嵌套的時候,內部函數可以訪問外部函數的局部變量 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)) --]]--[[ --用表模擬委托 委托的實質 是一個帶簽名的函數列表 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() --]]--[[ --用表模擬對象 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) --]]--[[ --用表模擬實例化對象 CreateWeapon ={} --構造器 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 相當于一個代碼塊的引用 --引用過來的代碼塊 返回值是一張表 當做對象來用 a = require("MyMath") print(a.Add(1,2)) print(a.Sub(1,2))a.PublicFoo() --a.PrivateFoo() a.PrivateFooEnter()--暫停 os.execute("pause") --endregion

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。