freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

word版可編輯-整理的lua程序設(shè)計(jì)很完整精心整理doc(編輯修改稿)

2025-08-11 12:29 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 (not 0) falseprint(not not nil) false 連接運(yùn)算符.. 兩個(gè)點(diǎn)字符串連接,如果操作數(shù)為數(shù)字,Lua將數(shù)字轉(zhuǎn)成字符串。print(Hello .. World) Hello Worldprint(0 .. 1) 01 優(yōu)先級(jí)從高到低的順序:^not (unary)* /+ .. = = ~= ==andor除了^和..外所有的二元運(yùn)算符都是左連接的。a+i b/2+1 (a+i) ((b/2)+1)5+x^2*8 5+((x^2)*8)a y and y = z (a y) and (y = z)x^2 (x^2)x^y^z x^(y^z) 表的構(gòu)造構(gòu)造器是創(chuàng)建和初始化表的表達(dá)式。表是Lua特有的功能強(qiáng)大的東西。最簡(jiǎn)單的構(gòu)造函數(shù)是{},用來(lái)創(chuàng)建一個(gè)空表。可以直接初始化數(shù)組:days = {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}Lua將Sunday初始化days[1](第一個(gè)元素索引為1),用Monday初始化days[2]...print(days[4]) Wednesday構(gòu)造函數(shù)可以使用任何表達(dá)式初始化:tab = {sin(1), sin(2), sin(3), sin(4), sin(5),sin(6), sin(7), sin(8)}如果想初始化一個(gè)表作為record使用可以這樣:a = {x=0, y=0} a = {}。 =0。 =0 不管用何種方式創(chuàng)建table,我們都可以向表中添加或者刪除任何類(lèi)型的域,構(gòu)造函數(shù)僅僅影響表的初始化。w = {x=0, y=0, label=console}x = {sin(0), sin(1), sin(2)}w[1] = another field = wprint(w[x]) 0print(w[1]) another fieldprint([1]) another field = nil remove field x每次調(diào)用構(gòu)造函數(shù),Lua都會(huì)創(chuàng)建一個(gè)新的table,可以使用table構(gòu)造一個(gè)list:list = nilfor line in () do list = {next=list, value=line}end這段代碼從標(biāo)準(zhǔn)輸入讀進(jìn)每行,然后反序形成鏈表。下面的代碼打印鏈表的內(nèi)容:l = listwhile l do print() l = end在同一個(gè)構(gòu)造函數(shù)中可以混合列表風(fēng)格和record風(fēng)格進(jìn)行初始化,如:polyline = {color=blue, thickness=2, npoints=4, {x=0, y=0}, {x=10, y=0}, {x=10, y=1}, {x=0, y=1}}這個(gè)例子也表明我們可以嵌套構(gòu)造函數(shù)來(lái)表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu).print(polyline[2].x) 10上面兩種構(gòu)造函數(shù)的初始化方式還有限制,比如你不能使用負(fù)索引初始化一個(gè)表中元素,字符串索引也不能被恰當(dāng)?shù)谋硎尽O旅娼榻B一種更一般的初始化方式,我們用[expression]顯示的表示將被初始化的索引:opnames = {[+] = add, [] = sub, [*] = mul, [/] = div}i = 20。 s = a = {[i+0] = s, [i+1] = s..s, [i+2] = s..s..s}print(opnames[s]) subprint(a[22]) list風(fēng)格初始化和record風(fēng)格初始化是這種一般初始化的特例:{x=0, y=0} {[x]=0, [y]=0}{red, green, blue} {[1]=red, [2]=green, [3]=blue}如果真的想要數(shù)組下標(biāo)從0開(kāi)始:days = {[0]=Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}注意:不推薦數(shù)組下標(biāo)從0開(kāi)始,否則很多標(biāo)準(zhǔn)庫(kù)不能使用。在構(gòu)造函數(shù)的最后的,是可選的,可以方便以后的擴(kuò)展。a = {[1]=red, [2]=green, [3]=blue,}在構(gòu)造函數(shù)中域分隔符逗號(hào)(,)可以用分號(hào)(。)替代,通常我們使用分號(hào)用來(lái)分割不同類(lèi)型的表元素。{x=10, y=45。 one, two, three}第4章 基本語(yǔ)法Lua像C和PASCAL幾乎支持所有的傳統(tǒng)語(yǔ)句:賦值語(yǔ)句、控制結(jié)構(gòu)語(yǔ)句、函數(shù)調(diào)用等,同時(shí)也支持非傳統(tǒng)的多變量賦值、局部變量聲明。 賦值語(yǔ)句賦值是改變一個(gè)變量的值和改變表域的最基本的方法。a = hello .. world = + 1Lua可以對(duì)多個(gè)變量同時(shí)賦值,變量列表和值列表的各個(gè)元素用逗號(hào)分開(kāi),賦值語(yǔ)句右邊的值會(huì)依次賦給左邊的變量。a, b = 10, 2*x a=10。 b=2*x遇到賦值語(yǔ)句Lua會(huì)先計(jì)算右邊所有的值然后再執(zhí)行賦值操作,所以我們可以這樣進(jìn)行交換變量的值:x, y = y, x swap 39。x39。 for 39。y39。a[i], a[j] = a[j], a[i] swap 39。a[i]39。 for 39。a[i]39。當(dāng)變量個(gè)數(shù)和值的個(gè)數(shù)不一致時(shí),Lua會(huì)一直以變量個(gè)數(shù)為基礎(chǔ)采取以下策略:a. 變量個(gè)數(shù) 值的個(gè)數(shù) 按變量個(gè)數(shù)補(bǔ)足nilb. 變量個(gè)數(shù) 值的個(gè)數(shù) 多余的值會(huì)被忽略例如:a, b, c = 0, 1 print(a,b,c) 0 1 nila, b = a+1, b+1, b+2 value of b+2 is ignoredprint(a,b) 1 2a, b, c = 0print(a,b,c) 0 nil nil上面最后一個(gè)例子是一個(gè)常見(jiàn)的錯(cuò)誤情況,注意:如果要對(duì)多個(gè)變量賦值必須依次對(duì)每個(gè)變量賦值。a, b, c = 0, 0, 0print(a,b,c) 0 0 0多值賦值經(jīng)常用來(lái)交換變量,或?qū)⒑瘮?shù)調(diào)用返回給變量:a, b = f()f()返回兩個(gè)值,第一個(gè)賦給a,第二個(gè)賦給b。 局部變量與代碼塊(block)使用local創(chuàng)建一個(gè)局部變量,與全局變量不同,局部變量只在被聲明的那個(gè)代碼塊內(nèi)有效。代碼塊:指一個(gè)控制結(jié)構(gòu)內(nèi),一個(gè)函數(shù)體,或者一個(gè)chunk(變量被聲明的那個(gè)文件或者文本串)。x = 10local i = 1 local to the chunkwhile i=x do local x = i*2 local to the while body print(x) 2, 4, 6, 8, ... i = i + 1endif i 20 then local x local to the then body x = 20 print(x + 2)else print(x) 10 (the global one)endprint(x) 10 (the global one)注意,如果在交互模式下上面的例子可能不能輸出期望的結(jié)果,因?yàn)榈诙鋖ocal i=1是一個(gè)完整的chunk,在交互模式下執(zhí)行完這一句后,Lua將開(kāi)始一個(gè)新的chunk,這樣第二句的i已經(jīng)超出了他的有效范圍??梢詫⑦@段代碼放在do..end(相當(dāng)于c/c++的{})塊中。應(yīng)該盡可能的使用局部變量,有兩個(gè)好處:1. 避免命名沖突2. 訪問(wèn)局部變量的速度比全局變量更快.我們給block劃定一個(gè)明確的界限:do..end內(nèi)的部分。當(dāng)你想更好的控制局部變量的作用范圍的時(shí)候這是很有用的。do local a2 = 2*a local d = sqrt(b^2 4*a*c) x1 = (b + d)/a2 x2 = (b d)/a2end scope of 39。a239。 and 39。d39。 ends hereprint(x1, x2) 控制結(jié)構(gòu)語(yǔ)句控制結(jié)構(gòu)的條件表達(dá)式結(jié)果可以是任何值,Lua認(rèn)為false和nil為假,其他值為真。if語(yǔ)句,有三種形式:if conditions then thenpartend。if conditions then thenpartelse elsepartend。if conditions then thenpartelseif conditions then elseifpart.. 多個(gè)elseifelse elsepartend。while語(yǔ)句:while condition do statements。end。repeatuntil語(yǔ)句:repeat statements。until conditions。for語(yǔ)句有兩大類(lèi):第一,數(shù)值for循環(huán):for var=exp1,exp2,exp3 do looppartendfor將用exp3作為step從exp1(初始值)到exp2(終止值),執(zhí)行l(wèi)ooppart。其中exp3可以省略,默認(rèn)step=1有幾點(diǎn)需要注意:1. 三個(gè)表達(dá)式只會(huì)被計(jì)算一次,并且是在循環(huán)開(kāi)始前。for i=1,f(x) do print(i)endfor i=10,1,1 do print(i)end第一個(gè)例子f(x)只會(huì)在循環(huán)前被調(diào)用一次。2. 控制變量var是局部變量自動(dòng)被聲明,并且只在循環(huán)內(nèi)有效.for i=1,10 do print(i)endmax = i probably wrong! 39。i39。 here is global如果需要保留控制變量的值,需要在循環(huán)中將其保存 find a value in a listlocal found = nilfor i=1, do if a[i] == value then found = i save value of 39。i39。
點(diǎn)擊復(fù)制文檔內(nèi)容
外語(yǔ)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1