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

正文內(nèi)容

lua51參考手冊-文庫吧資料

2025-06-11 19:10本頁面
  

【正文】 ,函數(shù)就不會返回任何結(jié)果。 我們先做如下定義,然后再來看一個例子: function f(a, b) end function g(a, b, ...) end function r() return 1,2,3 end下面看看實參到形參數(shù)以及可變長參數(shù)的映射關(guān)系: CALL PARAMETERS f(3) a=3, b=nil f(3, 4) a=3, b=4 f(3, 4, 5) a=3, b=4 f(r(), 10) a=1, b=10 f(r()) a=1, b=2 g(3) a=3, b=nil, ... (nothing) g(3, 4) a=3, b=4, ... (nothing) g(3, 4, 5, 8) a=3, b=4, ... 5 8 g(5, r()) a=5, b=1, ... 2 3結(jié)果由 return 來返回(參見 167。如果一個變長參數(shù)表達(dá)式放在另一個表達(dá)式中使用,或是放在另一串表達(dá)式的中間,那么它的返回值就會被調(diào)整為單個值。),那么實參列表就會被調(diào)整到形參列表的長度,變長參數(shù)函數(shù)不會調(diào)整實參列表;取而代之的是,它將把所有額外的參數(shù)放在一起通過變長參數(shù)表達(dá)式傳遞給函數(shù),其寫法依舊是三個點(diǎn)。當(dāng)一個函數(shù)被調(diào)用,如果函數(shù)沒有被定義為接收不定長參數(shù),即在形參列表的末尾注明三個點(diǎn) (39。 `...180。相同函數(shù)的不同實例有可能引用不同的外部局部變量,也可能擁有不同的環(huán)境表。那么,無論何時 Lua 執(zhí)行了函數(shù)定義,這個函數(shù)本身就被實例化了(或者說是關(guān)閉了)。) 一個函數(shù)定義是一個可執(zhí)行的表達(dá)式,執(zhí)行結(jié)果是一個類型為 function 的值。 Name]這樣的寫法: function f () body end被轉(zhuǎn)換成 f = function () body end這樣的寫法: function () body end被轉(zhuǎn)換成 = function () body end這樣的寫法: local function f () body end被轉(zhuǎn)換成 local f。 block end另外定義了一些語法糖簡化函數(shù)定義的寫法: stat ::= function funame funcbody stat ::= local function Name funcbody funame ::= Name {`.180。 return 無返回值 return x or f(x) 返回值被調(diào)整為一個 函數(shù)定義函數(shù)定義的語法如下: function ::= function funcbody funcbody ::= `(180。注意,尾調(diào)用只發(fā)生在特定的語法下,這時, return 只有單一函數(shù)調(diào)用作為參數(shù);這種語法使得調(diào)用函數(shù)的結(jié)果可以精確返回。因此,對于程序執(zhí)行的嵌套尾調(diào)用的層數(shù)是沒有限制的。 這樣一種調(diào)用形式:return functioncall 將觸發(fā)一個尾調(diào)用。因此,如果你真的想作為成兩個語句段,你必須在它們之間寫上一個分號。這個限制可以避免語言中的一些歧義。(39。);這里指參數(shù)列表是一個單獨(dú)的字符串。 (或是 fstring 亦或是 f[[string]])也是一種語法糖,用于表示 f(39。而這樣的形式 f39。 args ::= tableconstructor args ::= String所有參數(shù)的表達(dá)式求值都在函數(shù)調(diào)用之前。 參數(shù)的語法如下: args ::= `(180。這是 Lua 支持的一種語法糖。 這樣的形式 functioncall ::= prefixexp `:180。否則 prefixexp 的元方法 call 就被調(diào)用,第一個參數(shù)就是 prefixexp 的值,跟下來的是原來的調(diào)用參數(shù)(參見 167。 函數(shù)調(diào)用Lua 中的函數(shù)調(diào)用的語法如下: functioncall ::= prefixexp args函數(shù)調(diào)用時,第一步,prefixexp 和 args 先被求值。)。)。 x = 1, f(x), [30] = 23。舉個例子: a = { [f(1)] = g。最后,形如 exp 的域等價于 [i] = exp , 這里的 i 是一個從 1 開始不斷增長的數(shù)字。每個形如 [exp1] = exp2 的域向 table 中增加新的一項,其鍵值為 exp1 而值為 exp2。 | `。 exp | Name `=180。 exp `]180。 [fieldlist] `}180。構(gòu)造子可以被用來構(gòu)造一個空的 table,也可以用來構(gòu)造一個 table 并初始化其中的一些域。 Table 構(gòu)造table 構(gòu)造子是一個構(gòu)造 table 的表達(dá)式。) 是從右至左的。) 和冪操作 (39。連接操作符 (39。如果數(shù)組有一個“空洞” (就是說,nil 值被夾在非空值之間),那么 t 可能是任何一個是 nil 值的位置的下標(biāo)(就是說,任何一個 nil 值都有可能被當(dāng)成數(shù)組的結(jié)束)。它滿足 t[n] 不是 nil 而 t[n+1] 為 nil;此外,如果 t[1] 為 nil ,n 就可能是零。字符串的長度是它的字節(jié)數(shù)(就是以一個字符一個字節(jié)計算的字符串長度)。)。 中提到的規(guī)則把其轉(zhuǎn)換為字符串。)。) 連接符Lua 中字符串的連接操作符寫作兩個點(diǎn) (39。 and 和 or 都遵循短路規(guī)則;也就是說,第二個操作數(shù)只在需要的時候去求值。與操作符 and 在第一個參數(shù)為 false 或 nil 時返回這第一個參數(shù);否則,and 返回第二個參數(shù)。)一樣,所有的邏輯操作符把 false 和 nil 都作為假,而其它的一切都當(dāng)作真。 邏輯操作符Lua 中的邏輯操作符有 and, or, 以及 not。再則,Lua 就試著調(diào)用 lt 或是 le 元方法(參見 167。如果參數(shù)都是數(shù)字,那么就直接做數(shù)字比較。 操作符 ~= 完全等價于 (==) 操作的反值。 中提及的轉(zhuǎn)換規(guī)則并不作用于比較操作。)。每次你創(chuàng)建一個新對象(一個 table 或是 userdata ,thread 函數(shù)),它們都各不相同,即不同于上次創(chuàng)建的東西。數(shù)字和字符串都用常規(guī)的方式比較。如果類型不同,結(jié)果就是 false。(譯注:負(fù)數(shù)對正數(shù)取模的結(jié)果為正數(shù)) 比較操作符Lua 中的比較操作符有 == ~= = =這些操作的結(jié)果不是 false 就是 true。比如, x^() 將計算出 x 的平方根。),所有這些操作都依賴它通常的含義。) 數(shù)學(xué)運(yùn)算操作符Lua 支持常見的數(shù)學(xué)運(yùn)算操作符:二元操作 + (加法), (減法),* (乘法), / (除法), % (取模),以及 ^ (冪);和一元操作 (取負(fù))。((f(x,y,z)) 的值是 f 返回的第一個值。 這里有一些例子: 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)作一個值。如果表達(dá)式用于表達(dá)式列表的最后(或者是唯一)的元素,就不會有任何的對齊操作(除非函數(shù)調(diào)用用括號括起來)。如果表達(dá)式作為一個獨(dú)立語句段出現(xiàn)(參見 167。)。),取反 not(參見 167。)。),邏輯操作符(參見 167。 二元操作符包含有數(shù)學(xué)運(yùn)算操作符(參見 167。) ,它只能被用在有可變參數(shù)的函數(shù)中;這些在 167。 中解釋;可變參數(shù)的表達(dá)式寫作三個點(diǎn) (39。 中解釋;函數(shù)調(diào)用在 167。 中解釋;變量在 167。 exp `)180。 表達(dá)式Lua 中有這些基本表達(dá)式: exp ::= prefixexp exp ::= nil | false | true exp ::= Number exp ::= String exp ::= function exp ::= tableconstructor exp ::= `...180。 局部變量的可見規(guī)則在 167。),所以局部變量可以放在 chunk 中那些顯式注明的語句塊之外。否則,所有的變量將被初始化為 nil。 explist1]如果有的話,初始化賦值操作的行為等同于賦值操作(參見 167。 局部變量聲名局部變量可以在語句塊中任何地方聲名。函數(shù)調(diào)用在 167。如果你需要保留這些值,那么就在循環(huán)結(jié)束前賦值到別的變量里去。 ? 你可以使用 break 來跳出 for 循環(huán)。 ? f、 s、 以及 var 都是不可見的變量。 Name}for 語句好似這樣 for var_1, ???, var_n in explist do block end它等價于這樣一段代碼: do local f, s, var = explist while true do local var_1, ???, var_n = f(s, var) var = var_1 if var == nil then break end block end end注意以下幾點(diǎn): ? explist 只會被計算一次。每次疊代,疊代器函數(shù)都會被調(diào)用以產(chǎn)生一個新的值,當(dāng)這個值為 nil 時,循環(huán)停止。如果你需要這個值,在退出循環(huán)前把它賦給另一個變量。 ? 你可以用 break 來退出 for 循環(huán)。這里給它們起的名字都僅僅用于解釋方便。這些表達(dá)式的結(jié)果必須是數(shù)字。從第一個 exp 開始起,直到第二個 exp 的值為止,其步長為第三個 exp 。 exp [`,180。下面是它的語法: stat ::= for Name `=180。 For 語句for 有兩種形式:一種是數(shù)字形式,另一種是一般形式。如果你真的需要從語句塊的中間 return 或是 break ,你可以使用顯式的聲名一個內(nèi)部語句塊。 函數(shù)和 chunk 可以返回不只一個值,所以 return 的語法為 stat ::= return [explist1]break 被用來結(jié)束 while、 repeat、或 for 循環(huán),它將忽略掉循環(huán)中下面的語句段的運(yùn)行: stat ::= breakbreak 跳出最內(nèi)層的循環(huán)。因此,條件表達(dá)式中可以使用循環(huán)內(nèi)部語句塊中的定義的局部變量。所有不同于 nil 和 false 的其它值都被認(rèn)為是真(特別需要注意的是,數(shù)字 0 和空字符串也被認(rèn)為是真)。 控制結(jié)構(gòu)中的條件表達(dá)式可以返回任何值。) 控制結(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。(變量 _env 并沒有在 Lua 中定義出來。這個函數(shù)并沒有在 Lua 中定義出來,也不可以被調(diào)用。對變量下標(biāo)指向的賦值,即 t[i] = val 等價于 settable_event(t,i,val)。簡單說 ,這樣一行 x, y = y, x可以用來交換 x 和 y 中的值。因此,下面這段代碼 i = 3 i, a[i] = i+1, 20會把 a[3] 設(shè)置為 20,而不會影響到 a[4] 。)。如果表達(dá)式列表以一個函數(shù)調(diào)用結(jié)束,這個函數(shù)所返回的所有值都會在對齊操作之前被置入右值序列中。如果右值比需要的更多的話,多余的值就被扔掉。 里討論。 var} explist1 ::= exp {`,180。兩邊的元素都用逗號間開: sta
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1