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

正文內(nèi)容

lua51參考手冊-wenkub

2023-06-20 19:10:14 本頁面
 

【正文】 可以被預(yù)編譯成二進(jìn)制形式;細(xì)節(jié)參考程序 luac。)處理。]}這兒不允許有空的語句段,所以 39。 Chunk(語句組)Lua 的一個執(zhí)行單元被稱作 chunk。當(dāng)然,_env 這個變量也同樣沒有在 Lua 中定義出來。)。每個函數(shù)都有對一個環(huán)境的引用,所以一個函數(shù)中可見的所有全局變量都放在這個函數(shù)所引用的環(huán)境表(environment table)中。這里我們把它列出來只是方便說明。以取一個變量下標(biāo)指向的量 t[i] 等價于調(diào)用 gettable_event(t,i)。 在變量的首次賦值之前,變量的值均為 nil。 任何變量都被假定為全局變量,除非顯式的以 local 修飾定義 (參見 167。 變量寫上變量的地方意味著當(dāng)以其保存的值來替代之。 強(qiáng)制轉(zhuǎn)換Lua 提供運(yùn)行時字符串到數(shù)字的自動轉(zhuǎn)換。)。)。 table 是 lua 中唯一的一種數(shù)據(jù)結(jié)構(gòu);它可以用來描述原始的數(shù)組、符號表、集合、記錄、圖、樹、等等。 Lua 可以在所有的系統(tǒng)上提供對 coroutine 的支持,即使系統(tǒng)并不支持線程。這一點保證了宿主程序完全掌管其中的數(shù)據(jù)。然而,通過使用 metatable (元表) ,程序員可以為 userdata 自定義一組操作(參見 167。)。) String 表示一串字符的數(shù)組。 nil 和 false 都能導(dǎo)致條件為假;而另外所有的值都被當(dāng)作真。 Lua 中的所有值都是一致 (firstclass) 的。 值與類型Lua 是一種 動態(tài)類型語言。 Lua 也支持十六進(jìn)制整數(shù)常量,只需要在前面加上前綴 0x 。 a = alo\n123\ a = 39。 編碼為 97 ,換行符編碼為 10 ,39。這種方式描述的字符串可以包含任何東西,當(dāng)然特定級別的反長括號除外。就是說,0 級正的長括號寫作 [[ ,一級正的長括號寫作 [=[ ,如此等等。別的任何字符都可以直接寫在文本里。包括用 39。我們還可以用反斜杠加數(shù)字的形式 \ddd 來描述一個字符。\39。\\39。\t39。\n39。\b39。 下面這些是其它的 token : + * / % ^ == ~= = = = ( ) { } [ ] 。(字母的定義依賴于當(dāng)前環(huán)境:系統(tǒng)環(huán)境中定義的字母表中的字母都可以被用于標(biāo)識符。 。換句話說,這一節(jié)描述了哪些 token (符記)是有效的,它們?nèi)绾伪唤M合起來,這些組合方式有什么含義。這份手冊中描述的東西的實現(xiàn),可以在 Lua 的官方網(wǎng)站 找到, 跟其它的許多參考手冊一樣,這份文檔有些地方比較枯燥。宿主程序可以通過調(diào)用函數(shù)執(zhí)行一小段 Lua 代碼,可以讀寫 Lua 變量,可以注入 C 函數(shù)讓 Lua 代碼調(diào)用。 Lua 也能對面向?qū)ο缶幊?,函?shù)式編程,數(shù)據(jù)驅(qū)動式編程提供很好的支持。它可以作為一個強(qiáng)大、輕量的腳本語言,供任何需要的程序使用。這些擴(kuò)展的 C 函數(shù),可以大大的擴(kuò)展了 Lua 可以處理事務(wù)的領(lǐng)域,這樣就可以訂制出各種語言,而它們共享一個統(tǒng)一的句法格式的框架。關(guān)于 Lua 的設(shè)計想法的探討,可以看看 Lua 網(wǎng)站上提供的技術(shù)論文。 關(guān)于語言的構(gòu)成概念將用常見的擴(kuò)展 BNF 表達(dá)式寫出。完整的 Lua 語法可以在本手冊最后找到。)標(biāo)識符用來命名變量,或作為表的域名。 : , . .. ...字符串既可以用一對單引號引起,也可以是雙引號,里面還可以包含類似 C 的轉(zhuǎn)義符: 39。 (退格), 39。 (換行), 39。 (橫向制表), 39。 (反斜杠), 39。39。這里, ddd 是一串最多三位的十進(jìn)制數(shù)字。\039。(一些控制符可以會影響文件系統(tǒng)造成某些問題,但是不會引起 Lua 的任何問題。反的長擴(kuò)展也作類似定義;舉個例子,4 級反的長括號寫作 ]====] 。 另一個約定是,當(dāng)正的長括號后面立即跟了一個換行符,這個換行符就不包含在這個字符串內(nèi)。139。\97lo\10\0492339。下面是一些合法的數(shù)字常量的例子: 3 0xff 0x56注釋可以在除字符串內(nèi)的任何地方是以兩橫 () 開始。這意味著變量沒有類型,只有值才有類型。這意味著所有的值都可以被放在變量里,當(dāng)作參數(shù)傳遞到另一個函數(shù)中,并被函數(shù)作為結(jié)果返回。 Number 表示實數(shù)(雙精度浮點數(shù))。 Lua 是 8bit clean 的:字符串可以包含任何 8 位字符,包括零結(jié)束符 (39。 Lua 可以調(diào)用(和處理)用 Lua 寫的函數(shù)以及用 C 寫的函數(shù)(參見 167。)。 thread 類型用來區(qū)別獨立的執(zhí)行線程,它被用來實現(xiàn) coroutine (協(xié)同例程)(參見 167。 table 類型實現(xiàn)了一個關(guān)聯(lián)數(shù)組。用于表述記錄時,lua 使用域名作為索引。 跟索引一樣, table 每個域中的值也可以是任何類型(除 nil外)。 table, function ,thread ,和 (full) userdata 這些類型的值是所謂的對象:變量本身并不會真正的存放它們的值,而只是放了一個對對象的引用。任何對字符串的數(shù)學(xué)運(yùn)算操作都會嘗試用一般的轉(zhuǎn)換規(guī)則把這個字符串轉(zhuǎn)換成一個數(shù)字。 Lua 中有三類變量:全局變量,局部變量,還有 table 的域。)。 方括號被用來對 table 作索引: var ::= prefixexp `[180。(參見 167。) 這種語法只是一個語法糖,用來表示 var[Name]: var ::= prefixexp `.180。當(dāng)一個函數(shù)被創(chuàng)建出來,它會從創(chuàng)建它的函數(shù)中繼承其環(huán)境,你可以調(diào)用 getfenv 取得其環(huán)境。 對一個全局變量 x 的訪問等價于 ,而這又可以等價于 gettable_event(_env, x)這里,_env 是當(dāng)前運(yùn)行的函數(shù)的環(huán)境。我們在這里使用它們,僅僅只是方便解釋而已。一個 chunk 就是一串語句段,它們會被循序的執(zhí)行。39。正是這樣,chunk 內(nèi)可以定義局部變量,接收參數(shù),并且返回值。用源碼形式提供的程序和被編譯過的二進(jìn)制形式的程序是可以相互替換的; Lua 會自動識別文件類型并做正確的處理。 賦值Lua 允許多重賦值。 var} explist1 ::= exp {`,180。如果右值比需要的更多的話,多余的值就被扔掉。)。簡單說 ,這樣一行 x, y = y, x可以用來交換 x 和 y 中的值。這個函數(shù)并沒有在 Lua 中定義出來,也不可以被調(diào)用。) 控制結(jié)構(gòu)if、 while、以及 repeat 這些控制結(jié)構(gòu)符合通常的意義,而且也有類似的語法: stat ::= while exp do block end stat ::= repeat block until exp stat ::= if exp then block {elseif exp then block} [else block] endLua 也有一個 for 語句,它有兩種形式(參見 167。所有不同于 nil 和 false 的其它值都被認(rèn)為是真(特別需要注意的是,數(shù)字 0 和空字符串也被認(rèn)為是真)。 函數(shù)和 chunk 可以返回不只一個值,所以 return 的語法為 stat ::= return [explist1]break 被用來結(jié)束 while、 repeat、或 for 循環(huán),它將忽略掉循環(huán)中下面的語句段的運(yùn)行: stat ::= breakbreak 跳出最內(nèi)層的循環(huán)。 For 語句for 有兩種形式:一種是數(shù)字形式,另一種是一般形式。 exp [`,180。這些表達(dá)式的結(jié)果必須是數(shù)字。 ? 你可以用 break 來退出 for 循環(huán)。每次疊代,疊代器函數(shù)都會被調(diào)用以產(chǎn)生一個新的值,當(dāng)這個值為 nil 時,循環(huán)停止。 ? f、 s、 以及 var 都是不可見的變量。如果你需要保留這些值,那么就在循環(huán)結(jié)束前賦值到別的變量里去。 局部變量聲名局部變量可以在語句塊中任何地方聲名。否則,所有的變量將被初始化為 nil。 局部變量的可見規(guī)則在 167。 exp `)180。 中解釋;函數(shù)調(diào)用在 167。) ,它只能被用在有可變參數(shù)的函數(shù)中;這些在 167。),邏輯操作符(參見 167。),取反 not(參見 167。如果表達(dá)式作為一個獨立語句段出現(xiàn)(參見 167。 這里有一些例子: f() 調(diào)整到 0 個結(jié)果 g(f(), x) f() 被調(diào)整到一個結(jié)果 g(x, f()) g 被傳入 x 加上所有 f() 的返回值 a,b,c = f(), x f() 被調(diào)整到一個結(jié)果 ( c 在這里被賦為 nil ) a,b = ... a 被賦值為可變參數(shù)中的第一個, b 被賦值為第二個 (如果可變參數(shù)中并沒有對應(yīng)的值, 這里 a 和 b 都有可能被賦為 nil) a,b,c = x, f() f() 被調(diào)整為兩個結(jié)果 a,b,c = f() f() 被調(diào)整為三個結(jié)果 return f() 返回 f() 返回的所有結(jié)果 return ... 返回所有從可變參數(shù)中接收來的值 return x,y,f() 返回 x, y, 以及所有 f() 的返回值 {f()} 用 f() 的所有返回值創(chuàng)建一個列表 {...} 用可變參數(shù)中的所有值創(chuàng)建一個列表 {f(), nil} f() 被調(diào)整為一個結(jié)果被括號括起來的表達(dá)式永遠(yuǎn)被當(dāng)作一個值。) 數(shù)學(xué)運(yùn)算操作符Lua 支持常見的數(shù)學(xué)運(yùn)算操作符:二元操作 + (加法), (減法),* (乘法), / (除法), % (取模),以及 ^ (冪);和一元操作 (取負(fù))。比如, x^() 將計算出 x 的平方根。如果類型不同,結(jié)果就是 false。每次你創(chuàng)建一個新對象(一個 table 或是 userdata ,thread 函數(shù)),它們都各不相同,即不同于上次創(chuàng)建的東西。 中提及的轉(zhuǎn)換規(guī)則并不作用于比較操作。如果參數(shù)都是數(shù)字,那么就直接做數(shù)字比較。 邏輯操作符Lua 中的邏輯操作符有 and, or, 以及 not。與操作符 and 在第一個參數(shù)為 false 或 nil 時返回這第一個參數(shù);否則,and 返回第二個參數(shù)。) 連接符Lua 中字符串的連接操作符寫作兩個點 (39。 中提到的規(guī)則把其轉(zhuǎn)換為字符串。字符串的長度是它的字節(jié)數(shù)(就是以一個字符一個字節(jié)計算的字符串長度)。如果數(shù)組有一個“空洞” (就是說,nil 值被夾在非空值之間),那么 t 可能是任何一個是 nil 值的位置的下標(biāo)(就是說,任何一個 nil 值都有可能被當(dāng)成數(shù)組的結(jié)束)。) 和冪操作 (39。 Table 構(gòu)造table 構(gòu)造子是一個構(gòu)造 table 的表達(dá)式。 [fieldlist] `}180。 exp | Name `=180。每個形如 [exp1] = exp2 的域向 table 中增加新的一項,其鍵值為 exp1 而值為 exp2。舉個例子: a = { [f(1)] = g。)。 函數(shù)調(diào)用Lua 中的函數(shù)調(diào)用的語法如下: functioncall ::= prefixexp args函數(shù)調(diào)用時,第一步,prefixexp 和 args 先被求值。 這樣的形式 functioncall ::= prefixexp `:180。 參數(shù)的語法如下: args ::= `(180。而這樣的形式 f39。);這里指參數(shù)列表是一個單獨的字符串。這個限制可以避免語言中的一些歧義。 這樣一種調(diào)用形式:return functioncall 將觸發(fā)一個尾調(diào)用。注意,尾調(diào)用只發(fā)生在特定的語法下,這時, return 只有單一函數(shù)調(diào)用作為參數(shù);這種語法使得調(diào)用函數(shù)的結(jié)果可以精確返回。 block end另外定義了一些語法糖簡化函數(shù)定義的寫法: stat ::= function funame funcbody stat ::= local function Name funcbody funame ::= Name {`.180。) 一個函數(shù)定義是一個可執(zhí)行的表達(dá)式,執(zhí)行結(jié)果是一個類型為 function 的值。相同函數(shù)的不同實例有可能引用不同的外部局部變量,也可能擁有不同的環(huán)境表。當(dāng)一個函數(shù)被調(diào)用,如果函數(shù)沒有被定義為接收不定長參數(shù),即在形參列表的末尾注明三個點 (39。如果一個變長參數(shù)表達(dá)式放在另一個表達(dá)式中使用,或是放在另一串表達(dá)式的中間,那么它的返回值就會被調(diào)整為單個值。如果執(zhí)行到函數(shù)末尾依舊沒有遇到任何 return 語句,函數(shù)就不會返回任何結(jié)果??聪旅孢@些例子: x = 10 全局變量 do 新的語句塊 local x = x 新的一個 39。 print(x) 12 end print(x) 11 end print(x) 10 (取到的是全局
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1