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

正文內(nèi)容

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

2024-08-11 12:29 本頁面
 

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