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

正文內(nèi)容

最新整理的lua程序設(shè)計(jì)很完整-文庫吧

2025-07-15 02:00 本頁面


【正文】 60。 else elseifend false for function ifin local nil not orrepeat return then true untilwhile注意:Lua是大小寫敏感的.注釋:單行注釋:多行注釋:[[ ]][[print(10) no action (ment)]] 命令行方式lua [options] [script [args]]e:直接將命令傳入Luaprompt lua e print((12)) l:加載一個(gè)文件.i:進(jìn)入交互模式._PROMPT內(nèi)置變量作為交互模式的提示符prompt lua i e _PROMPT=39。 lua 39。luaLua的運(yùn)行過程,在運(yùn)行參數(shù)之前,Lua會查找環(huán)境變量LUA_INIT的值,如果變量存在并且值為@filename,Lua將加載指定文件。如果變量存在但不是以@開頭,Lua假定filename為Lua代碼文件并且運(yùn)行他。利用這個(gè)特性,我們可以通過配置,靈活的設(shè)置交互模式的環(huán)境??梢约虞d包,修改提示符和路徑,定義自己的函數(shù),修改或者重命名函數(shù)等。全局變量arg存放Lua的命令行參數(shù)。prompt lua script a b c在運(yùn)行以前,Lua使用所有參數(shù)構(gòu)造arg表。腳本名索引為0,腳本的參數(shù)從1開始增加。腳本前面的參數(shù)從1開始減少。prompt lua e sin= script a barg表如下:arg[3] = luaarg[2] = earg[1] = sin=arg[0] = scriptarg[1] = aarg[2] = b 第2章 類型和值Lua是動(dòng)態(tài)類型語言,變量不要類型定義。Lua中有8個(gè)基本類型分別為:nil、boolean、number、string、userdata、function、thread和table。函數(shù)type可以測試給定變量或者值的類型。print(type(Hello world)) stringprint(type(*3)) numberprint(type(print)) functionprint(type(type)) functionprint(type(true)) booleanprint(type(nil)) nilprint(type(type(X))) string變量沒有預(yù)定義的類型,每一個(gè)變量都可能包含任一種類型的值。print(type(a)) nil (39。a39。 is not initialized)a = 10print(type(a)) numbera = a string!!print(type(a)) stringa = print yes, this is valid!a(type(a)) function注意上面最后兩行,我們可以使用function像使用其他值一樣使用(更多的介紹參考第六章)。一般情況下同一變量代表不同類型的值會造成混亂,最好不要用,但是特殊情況下可以帶來便利,比如nil。 NilLua中特殊的類型,他只有一個(gè)值:nil;一個(gè)全局變量沒有被賦值以前默認(rèn)值為nil;給全局變量負(fù)nil可以刪除該變量。 Booleans兩個(gè)取值false和true。但要注意Lua中所有的值都可以作為條件。在控制結(jié)構(gòu)的條件中除了false和nil為假,其他值都為真。所以Lua認(rèn)為0和空串都是真。 Numbers表示實(shí)數(shù),Lua中沒有整數(shù)。一般有個(gè)錯(cuò)誤的看法CPU運(yùn)算浮點(diǎn)數(shù)比整數(shù)慢。事實(shí)不是如此,用實(shí)數(shù)代替整數(shù)不會有什么誤差(除非數(shù)字大于100,000,000,000,000)。Lua的numbers可以處理任何長整數(shù)不用擔(dān)心誤差。你也可以在編譯Lua的時(shí)候使用長整型或者單精度浮點(diǎn)型代替numbers,在一些平臺硬件不支持浮點(diǎn)數(shù)的情況下這個(gè)特性是非常有用的,具體的情況請參考Lua發(fā)布版所附的詳細(xì)說明。和其他語言類似,數(shù)字常量的小數(shù)部分和指數(shù)部分都是可選的,數(shù)字常量的例子:4 5e+20 Strings指字符的序列。lua是8位字節(jié),所以字符串可以包含任何數(shù)值字符,包括嵌入的0。這意味著你可以存儲任意的二進(jìn)制數(shù)據(jù)在一個(gè)字符串里。Lua中字符串是不可以修改的,你可以創(chuàng)建一個(gè)新的變量存放你要的字符串,如下:a = one stringb = (a, one, another) change string partsprint(a) one stringprint(b) another stringstring和其他對象一樣,Lua自動(dòng)進(jìn)行內(nèi)存分配和釋放,一個(gè)string可以只包含一個(gè)字母也可以包含一本書,Lua可以高效的處理長字符串,1M的string在Lua中是很常見的。可以使用單引號或者雙引號表示字符串a(chǎn) = a lineb = 39。another line39。為了風(fēng)格統(tǒng)一,最好使用一種,除非兩種引號嵌套情況。對于字符串中含有引號的情況還可以使用轉(zhuǎn)義符\來表示。Lua中的轉(zhuǎn)義序列有:\a bell\b back space 后退\f form feed 換頁\n newline 換行\(zhòng)r carriage return 回車\t horizontal tab 制表\v vertical tab\\ backslash \\ double quote 雙引號\39。 single quote 單引號\[ left square bracket 左中括號\] right square bracket 右中括號例子: print(one line\nnext line\n\in quotes\, 39。in quotes39。)one linenext linein quotes, 39。in quotes39。 print(39。a backslash inside quotes: \39。\\\39。39。)a backslash inside quotes: 39。\39。 print(a simpler way: 39。\\39。)a simpler way: 39。\39。還可以在字符串中使用\ddd(ddd為三位十進(jìn)制數(shù)字)方式表示字母。alo\n123\和39。\97lo\10\0492339。是相同的。還可以使用[[...]]表示字符串。這種形式的字符串可以包含多行也,可以嵌套且不會解釋轉(zhuǎn)義序列,如果第一個(gè)字符是換行符會被自動(dòng)忽略掉。這種形式的字符串用來包含一段代碼是非常方便的。page = [[HTMLHEADTITLEAn HTML Page/TITLE/HEADBODYLua[[a text between double brackets]]/BODY/HTML]](page)運(yùn)行時(shí),Lua會自動(dòng)在string和numbers之間自動(dòng)進(jìn)行類型轉(zhuǎn)換,當(dāng)一個(gè)字符串使用算術(shù)操作符時(shí),string就會被轉(zhuǎn)成數(shù)字。print(10 + 1) 11print(10 + 1) 10 + 1print( 10 * 2) print(hello + 1) ERROR (cannot convert hello)反過來,當(dāng)Lua期望一個(gè)string而碰到數(shù)字時(shí),會將數(shù)字轉(zhuǎn)成string。print(10 .. 20) 1020..在Lua中是字符串連接符,當(dāng)在一個(gè)數(shù)字后面寫..時(shí),必須加上空格以防止被解釋錯(cuò)。盡管字符串和數(shù)字可以自動(dòng)轉(zhuǎn)換,但兩者是不同的,像10 == 10這樣的比較永遠(yuǎn)都是錯(cuò)的。如果需要顯式將string轉(zhuǎn)成數(shù)字可以使用函數(shù)tonumber(),如果string不是正確的數(shù)字該函數(shù)將返回nil。line = () read a linen = tonumber(line) try to convert it to a numberif n == nil then error(line .. is not a valid number)else print(n*2)end反之,可以調(diào)用tostring()將數(shù)字轉(zhuǎn)成字符串,這種轉(zhuǎn)換一直有效:print(tostring(10) == 10) trueprint(10 .. == 10) true Functions函數(shù)是第一類值(和其他變量相同),意味著函數(shù)可以存儲在變量中,可以作為函數(shù)的參數(shù),也可以作為函數(shù)的返回值。這個(gè)特性給了語言很大的靈活性:一個(gè)程序可以重新定義函數(shù)增加新的功能或者為了避免運(yùn)行不可靠代碼創(chuàng)建安全運(yùn)行環(huán)境而隱藏函數(shù),此外這特性在Lua實(shí)現(xiàn)面向?qū)ο笾幸财鹆酥匾饔茫ㄔ诘?6章詳細(xì)講述)。Lua可以調(diào)用lua或者C實(shí)現(xiàn)的函數(shù),Lua所有標(biāo)準(zhǔn)庫都是用C實(shí)現(xiàn)的。標(biāo)準(zhǔn)庫包括string庫、table庫、I/O庫、OS庫、算術(shù)庫、debug庫。 Userdata and Threadsuserdata可以將C數(shù)據(jù)存放在Lua變量中,userdata在Lua中除了賦值和相等比較外沒有預(yù)定義的操作。userdata用來描述應(yīng)用程序或者使用C實(shí)現(xiàn)的庫創(chuàng)建的新類型。例如:用標(biāo)準(zhǔn)I/O庫來描述文件。下面在C API章節(jié)中我們將詳細(xì)討論。在第九章討論協(xié)同操作的時(shí)候,我們介紹線程。第3章 表達(dá)式Lua中的表達(dá)式包括數(shù)字常量、字符串常量、變量、一元和二元運(yùn)算符、函數(shù)調(diào)用。還可以是非傳統(tǒng)的函數(shù)定義和表構(gòu)造。 算術(shù)運(yùn)算符二元運(yùn)算符:+ * / ^ (加減乘除冪)一元運(yùn)算符: (負(fù)值)這些運(yùn)算符的操作數(shù)都是實(shí)數(shù)。 關(guān)系運(yùn)算符 = = == ~=這些操作符返回結(jié)果為false或者true;==和~=比較兩個(gè)值,如果兩個(gè)值類型不同,Lua認(rèn)為兩者不同;nil只和自己相等。Lua通過引用比較tables、userdata、functions。也就是說當(dāng)且僅當(dāng)兩者表示同一個(gè)對象時(shí)相等。a = {}。 = 1。 = 0b = {}。 = 1。 = 0c = aa==c but a~=bLua比較數(shù)字按傳統(tǒng)的數(shù)字大小進(jìn)行,比較字符串按字母的順序進(jìn)行,但是字母順序依賴于本地環(huán)境。當(dāng)比較不同類型的值的時(shí)候要特別注意:0 == 0 false2 15 true2 15 false (alphabetical order!)為了避免不一致的結(jié)果,混合比較數(shù)字和字符串,Lua會報(bào)錯(cuò),比如:2 15 邏輯運(yùn)算符and or not邏輯運(yùn)算符認(rèn)為false和nil是假(false),其他為真,0也是true.and和or的運(yùn)算結(jié)果不是true和false,而是和它的兩個(gè)操作數(shù)相關(guān)。a and b 如果a為false,則返回a,否則返回ba or b 如果a為true,則返回a,否則返回b例如:print(4 and 5) 5print(nil and 13) nilprint(false and 13) falseprint(4 or 5) 4print(false or 5) 5一個(gè)很實(shí)用的技巧:如果x為false或者nil則給x賦初始值vx = x or v等價(jià)于if not x then x = vendand的優(yōu)先級比or高。C語言中的三元運(yùn)算符a ? b : c在Lua中可以這樣實(shí)現(xiàn):(a and b) or cnot的結(jié)果只返回false或者trueprint(not nil) trueprint(not false) trueprint
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1