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

正文內容

lua__參考手冊(docx頁)-預覽頁

2024-12-07 08:16 上一頁面

下一頁面
 

【正文】 時 , lua 使用域名作為索引。 跟索引一樣, table 每個域中的值也可以是任何類型(除 nil 外)。 table, function , thread ,和 (full) userdata 這些類型的值是所謂的對象:變量本身并不會真正的存放它們的值,而只是放了一個對對象的引用。任何對字符串的數(shù)學運算操作都會嘗試用一般的轉換規(guī)則把這個字符串轉換成一個數(shù)字。 Lua 中有三類變量:全局變量,局部變量,還有 table 的域。 )。 方括號被用來對 table 作索引: var ::= prefixexp `[180。(參見 167。) 這種語法只是一個語法糖,用來 表示 var[Name]: var ::= prefixexp `.180。當一個函數(shù)被創(chuàng)建出來,它會從創(chuàng)建它的函數(shù)中繼承其環(huán)境,你可以調用 getfenv 取得其環(huán)境。 對一個全局變量 x 的訪問等價于 ,而這又可以等價于 gettable_event(_env, x) 這里, _env 是當前運行的函數(shù)的環(huán)境。當然, _env 這個變量也同樣沒有在 Lua 中定義出來。 Chunk(語句組) Lua 的一個執(zhí)行單元被稱作 chunk。]} 這兒不允許有空的語句段,所以 39。 )處理。 chunk 也可以被預編譯成二進制形式;細節(jié)參考程序 luac。 )。 explist1 varlist1 ::= var {`,180。 在作賦值操作之前,那一系列的右值會被對齊到左邊變量需要的個數(shù)。(除非這個函數(shù)調用被用括號括了起來;參見 167。這是因為 a[i] 中的 i 在被賦值為 4 之前就被拿出來了(那時是 3 )。(關于函數(shù) settable_event 的詳細說明,參見 167。(變量 _env 并沒有在 Lua 中定義出來。 控制結構中的條件表達式可以返回任何值。因此,條件表達式中可以使用循環(huán)內部語句塊中的定義的局部變量。如果你真的需要從語句塊的中間 return 或是 break ,你可以使用顯式的聲名一個內部語句塊。下面是它的語法: stat ::= for Name `=180。從第一個 exp 開始起,直到第二個 exp 的值為止,其步長為第三個 exp 。這里給它們起的名字都僅僅用于解釋方便。如果你需要這個值,在退出循環(huán)前把它賦給另一個變量。 Name} for 語句好似這樣 for var_1, ? f、 s、 以及 var 都是不可見的變量。如果你需要保留這些值,那么就在循環(huán)結束前賦值到別的變量里去。 局部變量聲名 局部變量可以在語句塊中任何地方聲名。否則,所有的變量將被初始化 為 nil。 局部變量的可見規(guī)則在 167。 exp `)180。 中解釋;函數(shù)調用在 167。) ,它只能被用在有可變參數(shù)的函數(shù)中;這些在 167。 ),邏輯操作符(參見 167。 ),取反 not(參見 167。如果表達式作為一個獨立語句段出現(xiàn)(參見 167。 這里有一些例子: f() 調整到 0 個結果 g(f(), x) f() 被調整到一個結果 g(x, f()) g 被傳入 x 加上所有 f() 的返回值 a,b,c = f(), x f() 被調整到一個結果 ( c 在這里被賦為 nil ) a,b = ... a 被賦值為可變參數(shù)中的第一個, b 被賦值為第二個 (如果可變參數(shù)中并沒有對應的值, 這里 a 和 b 都有可能被賦 為 nil) a,b,c = x, f() f() 被調整為兩個結果 a,b,c = f() f() 被調整為三個結果 return f() 返回 f() 返回的所有結果 return ... 返回所有從可變參數(shù)中接收來的值 return x,y,f() 返回 x, y, 以及所有 f() 的返回值 {f()} 用 f() 的所有返回值創(chuàng)建一個列表 {...} 用可變參數(shù)中的所有值創(chuàng)建一個列表 {f(), nil} f() 被調整為一個結果 被括號括起來的表達式永遠被當作一個值。) 數(shù)學運算操作符 Lua 支持常見的數(shù)學運算操作符:二元操作 + ( 加法), (減法), * (乘法), / (除法), % (取模),以及 ^ (冪);和一元操作 (取負)。比如, x^() 將計算出 x 平方根的倒數(shù)。如果類型不同,結果就是 false。每次你創(chuàng)建一個新對象(一個 table 或是 userdata , thread 函數(shù)),它們都各不相同,即不同于上次創(chuàng)建的東西。 中提及的轉換規(guī)則并不作用于比較操作。如果參數(shù)都是數(shù)字,那么就直接做數(shù)字比較。 邏輯操作符 Lua 中的邏輯操作符有 and, or, 以及 not。與操作符 and 在第一個參數(shù)為 false 或 nil 時返回這第一個參數(shù);否則, and 返回第二個參數(shù)。) 連接符 Lua 中字符串的連接操作符寫作兩個點 (39。 中提到的規(guī)則把其轉換為字符串。字符串的長度是它的字節(jié)數(shù)(就是以一個字符一個字節(jié)計算的字符串長度)。如果數(shù)組有一 個 “ 空洞 ” (就是說, nil 值被夾在非空值之間),那么 t 可能是指向任何一個是 nil 值的前一個位置的下標(就是說,任何一個 nil 值都有可能被當成數(shù)組的結束)。) 和冪操作 (39。 Table 構造 table 構造子是一個構造 table 的表達式。 [fieldlist] `}180。 exp | Name `=180。 每個形如 [exp1] = exp2 的域向 table 中增加新的一項,其鍵值為 exp1 而值為 exp2。舉個例子: a = { [f(1)] = g。 )。 函數(shù)調用 Lua 中的函數(shù)調用的語法如下: functioncall ::= prefixexp args 函數(shù)調用時,第一步, prefixexp 和 args 先被求值。 這樣的形式 functioncall ::= prefixexp `:180。 參數(shù)的語法如下: args ::= `(180。而這樣的形式 f39。);這里指參數(shù)列表是一個單獨的字符串。這個限制可以避免語言中的一些歧義。 這樣一種調用形式: return functioncall 將觸發(fā)一個尾調用。注意,尾調用只發(fā)生在特定的語法下,這時, return 只有單一函數(shù)調用作為參數(shù);這種語法使得調用函數(shù)的結果可以精確返回。 block end 另外定義 了一些語法糖簡化函數(shù)定義的寫法: stat ::= function funame funcbody stat ::= local function Name funcbody funame ::= Name {`.180。) 一個函數(shù)定義是一個可執(zhí)行的表達式,執(zhí)行結果是一個類型為 function 的值。相同函數(shù)的不同實例有可能引用不同的外部局部變量,也可能擁有不同的環(huán)境表。 當一個函數(shù)被調用,如果函數(shù)沒有被定義為接收不定長參數(shù),即 在形參列表的末尾注明三個點 (39。如果一個變長參數(shù)表達式放在另一個表達式中使用,或是放在另一串表達式的中間,那么它的返回值就會被調整為單個值。如果執(zhí)行到函數(shù)末尾依舊沒有遇到任何 return 語句,函數(shù)就不會返回任何結果??聪旅孢@些例子: x = 10 全局變量 do 新的語句塊 local x = x 新的一個 39。 print(x) 12 end print(x) 11 end print(x) 10 (取到的是全局的那 一個) 注意這里,類似 local x = x 這樣的聲明,新的 x 正在被聲明,但是還沒有進入它的作用范圍,所以第二個 x 指向的是外面一層的變量??纯催@樣一個例子: a = {} local x = 20 for i=1,10 do local y = 0 a[i] = function () y=y+1。在 Lua 編譯或運行的任何時候發(fā)生了錯誤,控制權都會交還給 C ,而 C 可以來做一些恰當?shù)拇胧ū热绱蛴〕鲆粭l錯誤信息)。這個 metatable 就是一個原始的 Lua table ,它用來定義原始值在特定操作下的行為。 我們叫 metatable 中的鍵名為 事件 (event) ,把其中的值叫作 元方法 (metamethod)。你不能從 Lua 中改變其它任何類型的值的 metatable (使用 debug 庫例外);要這樣做的話必須使用 C API 。對于這些操作, Lua 都將其關聯(lián)上一個被稱作事件的指定健。每個操作都用相應的名字區(qū)分 。這些操作的語義用一個 Lua 函數(shù)來描述解釋器如何執(zhí)行更為恰當。 中找到。首先, Lua 嘗試第一個操作數(shù)。 是原生的 39。 其行為類似于 add 操作。 其行為類似于 add 操作,它的原生操作是這樣的 o1 floor(o1/o2)*o2 ? pow: ^ (冪)操作。39。 ? 嘗試從操作數(shù)中得到處理器 ? local h = metatable(op).__unm ? if h then ? 以操作數(shù)為參數(shù)調用處理器 ? return h(op) ? else 沒有處理器:缺省行為 ? error( ? eq: == 操作。 ? lt: 操作。)。 ? index: 取下標操作用于訪問 table[key] 。)。 return end ? else ? h = metatable(table).__newindex ? if h == nil then ? error( ? end ? end ? if type(h) == function then ? return h(table, key,value) 調用處理器 ? else h[key] = value 或是重復上述操作 ? end ? end ? call: 當 Lua 調用一個值時調用。) ? end ? end ? end 環(huán)境 類型為 thread , function ,以及 userdata 的對象,除了 metatable 外還可以用另外一個與之關聯(lián)的被稱作它們的環(huán)境的一個表,像 metatable 一樣,環(huán)境也是一個常規(guī)的 table , 多個對象可以共享同一個環(huán)境。全局環(huán)境被用作它其中的線程以及線程創(chuàng)建的非嵌套函數(shù)(通過 loadfile , loadstring 或是 load )的缺省環(huán)境。 )。它們也會作為這個函數(shù)內創(chuàng)建的其它函數(shù)的缺省環(huán)境。這就是說你不需要關心創(chuàng)建新對象的分配內存操作,也不需要在這些對象不再需要時的主動釋放內存。它用兩個 數(shù)字來控制垃圾收集周期: garbagecollector pause 和 garbagecollector step multiplier 。當值為 2 的時候意味著在總使用內存數(shù)量達到原來的兩倍時再開啟新的周期。缺省值為 2 ,這意味著收集器將以內存分配器的兩倍速運行。 垃圾收集的元方法 使用 C API ,你可以給 userdata (參見 167。 一個 userdata 可被回收,若它的 metatable 中有 __gc 這個域 ,垃圾收集器就不立即收回它。 Weak Table(弱表) weak table 是一個這樣的 table,它其中的元素都被弱引用。而一個 table 的鍵和值都是 weak 時,就即允許收集器回收鍵又允許收回值。k39。 的字符串時, table 的值就是 wea
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1