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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Lua初学习 9-12 基础

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

1:string 轉(zhuǎn) number :tonumber(string)

2: number 轉(zhuǎn) string :tostring(number)

3:string API:

? ? ? ?Lua中的字符串是不可變值,a = "cocotang" ?string.gsub(a,"c","z") ?print(a) ----> cocotang

? ? ? ? 1獲得字符串長度:string.len(string) ?或者 #string

? ? ? ? 2拼接2個(gè)字符串: string..string ? ? && ? ?如果是2個(gè)number number .. number(空格不然誤認(rèn)為小數(shù)點(diǎn))

? ? ? ? 3截取字符串,組成新的字符串:string.gsub(a,"cc","zz",index) a字符串中的 cc 由 zz 代替 直到index位置

? ? ? ? 4查找字符串中的某字符串位置:string.find(a,"coco") 返回2個(gè)值 c 的index 與 o的index

4:io.read() 獲取控制臺(tái)輸入

5: Table創(chuàng)建一個(gè)List(數(shù)組)

? ? ? ? ? ?a={}

? ? ? ? ? ?1:當(dāng)key 賦值1-10時(shí),len = 10

? ? ? ? ? ?2:當(dāng)key 賦值0-10時(shí),len = 10 (同上)

? ? ? ? ? Lua中通常用 1 來做 Index的初始值 ?(table.maxn(a))--->返回最大正索引 Index

6:取精度?

? ? ?x = 3.123456 print(x-x%0.001) ? ---->3.123

? ? ?x%1 結(jié)果是 x的小數(shù)部分 0.123456

? ? ?x-x%1 結(jié)果是 x的整數(shù)部分 3 ??

? ? ?x-x%0.001 結(jié)果是 x取小數(shù)點(diǎn)后三位

7:運(yùn)算符

? ? ?> < == >= <= 同于C#

? ? ? ~= 不等于(C# !=)

? ? ? Lua中取反 not(空格) ? (C# !)

8:運(yùn)算優(yōu)先級

? ? ? 基本同于C#,直接用括號顯示的表現(xiàn)優(yōu)先級 容易理解

? ? ? -x^2 ?-------> -(x^2)

? ? ? x^y^z --------->x^(y^z)

9:Table構(gòu)造式

? ? ?a = {x = 10 , y = 20} 等價(jià)于a ={["x"]=10 ,["y" =20]} ?等價(jià)于 a = {} a["x"] =10 a["y"] =20 ?等價(jià)于 a = {} a.x= 10 a.y = 20

10:Table里面刪除一個(gè)變量

? ? ? a = {} a.x= 10 ?a.x= nil

11:交換變量(Lua里面有點(diǎn)特別) (多重賦值 調(diào)函數(shù)時(shí)傳入的實(shí)參多余或者少于形參時(shí),與多重賦值非常相似)

? ? ?C#中:int a=1;int b=2; 交換: int c = a; a =b; b=c;

? ? ?Lua中:a = 1 b = 2 ?交換:a,b = b,a

? ? ?a,b = 1,2,3 ---->舍棄3

? ? ?a,b,c = 1,2 ?----->c=nil

12:流程控制

? ? ?1由于Lua不支持Switch語句,所以一連串的if elseif 是很常見的

? ? ?2循環(huán)中用break可以跳出循環(huán)

13:Lua中沒有 ++ --,并且 += ?-=也沒有 ? ?如果遞增1 a=a+1

14:Lua中的Foreach( Generic for)

? ? ? 1遍歷所有k: a = {x=1,y=2,z=3;"one","two","three"}

? ? ? ? for k in pairs(a) do

? ? ? ? print(k) ?------> ?1 2 3 y x z

? ? ? ? end

? ? ? ?2遍歷所有v:

? ? ? ? ?for i , v in pairs(a) do

? ? ? ? ?print(v) ?-------> one two three 2 1 3

? ? ? ? ?end

? ? ? ? 2-2 遍歷所有的v? ? ? ? ?

? ? ? ??for k in pairs(a) do

? ? ? ? print(a[k]) ?------> ?1 2 3 y x z

? ? ? ? end

? ? ? ? 3遍歷數(shù)組a的所有值

? ? ? ? for i , v in ipairs(a) do

? ? ? ? print(v) ?---------> one two three

? ? ? ? end

? ? 值得注意的是:遍歷數(shù)組a中的值,ipairs(a) 輸出的并不是所有的value,以后慢慢了解

15:逆向Table(反轉(zhuǎn)key value)

? ? ? ?a = {x=1, y =2, z =3}

? ? ? ?b = {}

? ? ? ?for k,v in pairs(a) do

? ? ? ?b[v] = k

? ? ? ?end

16:break與return

? ? ? ?break跳出循環(huán),return跳出方法

? ? ? ?注意:但是如果return在if前面 ?報(bào)錯(cuò)

17:方法的調(diào)用

? ? ? ?a = {}

? ? ? ?function a:Test() print("orz") end

? ? ? ?第一種調(diào):a:Test() ? ?第二種調(diào):a.Test() 注意第二種隱式的傳入了a ?--->a.Test(a)

? ? ? ?假如 function有一個(gè)參數(shù),用第二種調(diào) a.Test(n) 報(bào)錯(cuò),應(yīng)該---> a.Test(a,n)

18:方法的返回值

? ? ?function foo1() end 無返回值

? ? ?function foo2() return 1 end 返回一個(gè)值

? ? ?function foo3() return 1,2 end 返回兩個(gè)值

? ? ?x,y = foo3() ----> x =1, y = 2

? ? ?x = foo3() ?------> x =1 , ?2被丟棄

? ? ?x,y,z = foo3() ----->x=1,y=2,z=nil

? ? ?x,y = foo3(),99 ?----->x = 1,y = 99

? ? ?x,y = foo1(),20,30 ---->x = nil , y =20 ? ?30被丟棄

? ? ?注意:Table 可以接受 函數(shù)返回的所有值,前提是函數(shù)作為table構(gòu)造式中最后一個(gè)參數(shù),如果不是最后一個(gè)參數(shù),那么只會(huì)取第一個(gè)返回值,無返回值則為nil

? ? ?如果強(qiáng)行讓函數(shù)返回第一個(gè)值,可以用一對小括號 括起來函數(shù) ---> (foo()) 不管foo有幾個(gè)返回值,都只返回第一個(gè),沒有返回nil

? ? ? 特殊內(nèi)置函數(shù) unpack:它接受一個(gè)數(shù)組作為參數(shù),并從下標(biāo)1開始返回該數(shù)組的所有元素

? ? ? ?例如:print(unpack({1,2,3,4,5,66})) ? ----> 1,2,3,4,5,66

19:?算術(shù)類元方法

__add()?? + 運(yùn)算對應(yīng)的元方法
__sub()? ?
__mul
__div
__mod
__pow
__unm???? 相反數(shù)
__concat? .. 運(yùn)算對應(yīng)的元方法

?

? ? ??

? ? ? ? ??

? ? ? ? ?

轉(zhuǎn)載于:https://www.cnblogs.com/cocotang/p/5864861.html

總結(jié)

以上是生活随笔為你收集整理的Lua初学习 9-12 基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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