日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

写lua时需要注意的地方

發(fā)布時(shí)間:2023/12/2 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 写lua时需要注意的地方 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 條件語(yǔ)句判斷時(shí),只有false和nil會(huì)導(dǎo)致判斷為假,其他的任何值都為真。
  • ?Lua 的字符串與編碼無(wú)關(guān); 它不關(guān)心字符串中具體內(nèi)容。
  • 標(biāo)準(zhǔn) Lua 使用 64 位整數(shù)和雙精度(64 位)浮點(diǎn)數(shù), 但你也可以把 Lua 編譯成使用 32 位整數(shù)和單精度(32 位)浮點(diǎn)數(shù)。 以 32 位表示數(shù)字對(duì)小型機(jī)器以及嵌入式系統(tǒng)特別合適。
  • table?是一個(gè)關(guān)聯(lián)數(shù)組, 也就是說(shuō),這個(gè)數(shù)組不僅僅以數(shù)字做索引,除了?nil?和 NaN 之外的所有 Lua 值 都可以做索引
  • Lua 語(yǔ)言對(duì)大小寫(xiě)敏感:?and?是一個(gè)保留字,但?And?與?AND?則是兩個(gè)不同的有效名字。 作為一個(gè)約定,程序應(yīng)避免創(chuàng)建以下劃線(xiàn)加一個(gè)或多個(gè)大寫(xiě)字母構(gòu)成的名字 (例如 _VERSION)
  • Lua 5.3 之后支持了位運(yùn)算
  • 關(guān)于函數(shù)可返回值的數(shù)量限制和系統(tǒng)有關(guān)。 這個(gè)限制一定大于 1000?
  • 當(dāng)你使用 Lua API 時(shí), 就有責(zé)任保證做恰當(dāng)?shù)恼{(diào)用。 特別需要注意的是,?你有責(zé)任控制不要堆棧溢出。 你可以使用?lua_checkstack?這個(gè)函數(shù)來(lái)擴(kuò)大可用堆棧的尺寸。
  • Lua 支持協(xié)程,也叫?協(xié)同式多線(xiàn)程。 一個(gè)協(xié)程在 Lua 中代表了一段獨(dú)立的執(zhí)行線(xiàn)程。 然而,與多線(xiàn)程系統(tǒng)中的線(xiàn)程的區(qū)別在于, 協(xié)程僅在顯式調(diào)用一個(gè)讓出(yield)函數(shù)時(shí)才掛起當(dāng)前的執(zhí)行。
  • Lua 從一個(gè)對(duì)象?obj?中獲取一個(gè)元方法的過(guò)程:

    rawget(getmetatable(obj) or {}, "__" .. event_name)
  • 取長(zhǎng)度操作符寫(xiě)作一元前置符?#。 字符串的長(zhǎng)度是它的字節(jié)數(shù)(就是以一個(gè)字符一個(gè)字節(jié)計(jì)算的字符串長(zhǎng)度)。

    程序可以通過(guò)?__len?元方法來(lái)修改對(duì)字符串類(lèi)型外的任何值的取長(zhǎng)度操作行為。

    如果?__len?元方法沒(méi)有給出, 表?t?的長(zhǎng)度只在表是一個(gè)?序列?時(shí)有定義。 序列指表的正數(shù)鍵集等于?{1..n}?, 其中?n?是一個(gè)非負(fù)整數(shù)。 在這種情況下,n?是表的長(zhǎng)度。 注意這樣的表

    {10, 20, nil, 40}

    不是一個(gè)序列,因?yàn)樗墟I?4?卻沒(méi)有鍵?3。 (因此,該表的正整數(shù)鍵集不等于?{1..n}?集合,故而就不存在?n。) 注意,一張表是否是一個(gè)序列和它的非數(shù)字鍵無(wú)關(guān)。

  • return?functioncall?這樣的調(diào)用形式將觸發(fā)一次?尾調(diào)用。 Lua 實(shí)現(xiàn)了?完全尾調(diào)用(或稱(chēng)為?完全尾遞歸): 在尾調(diào)用中, 被調(diào)用的函數(shù)重用調(diào)用它的函數(shù)的堆棧項(xiàng)。 因此,對(duì)于程序執(zhí)行的嵌套尾調(diào)用的層數(shù)是沒(méi)有限制的。 然而,尾調(diào)用將刪除調(diào)用它的函數(shù)的任何調(diào)試信息。 注意,尾調(diào)用只發(fā)生在特定的語(yǔ)法下, 僅當(dāng)?return?只有單一函數(shù)調(diào)用作為參數(shù)時(shí)才發(fā)生尾調(diào)用; 這種語(yǔ)法使得調(diào)用函數(shù)的所有結(jié)果可以完整地返回。 因此,下面這些例子都不是尾調(diào)用:

      return (f(x)) -- 返回值被調(diào)整為一個(gè)return 2 * f(x)return x, f(x) -- 追加若干返回值f(x); return -- 返回值全部被舍棄return x or f(x) -- 返回值被調(diào)整為一個(gè)

    ?

  • Lua 語(yǔ)言有詞法作用范圍。 變量的作用范圍開(kāi)始于聲明它們之后的第一個(gè)語(yǔ)句段, 結(jié)束于包含這個(gè)聲明的最內(nèi)層語(yǔ)句塊的最后一個(gè)非空語(yǔ)句。 看下面這些例子:

    x = 10 -- 全局變量do -- 新的語(yǔ)句塊local x = x -- 新的一個(gè) 'x', 它的值現(xiàn)在是 10print(x) --> 10x = x+1do -- 另一個(gè)語(yǔ)句塊local x = x+1 -- 又一個(gè) 'x'print(x) --> 12endprint(x) --> 11endprint(x) --> 10 (取到的是全局的那一個(gè))

    注意這里,類(lèi)似?local x = x?這樣的聲明, 新的?x?正在被聲明,但是還沒(méi)有進(jìn)入它的作用范圍, 所以第二個(gè)?x?指向的是外面一層的變量。

  • 轉(zhuǎn)載于:https://www.cnblogs.com/andyidea/p/4515531.html

    總結(jié)

    以上是生活随笔為你收集整理的写lua时需要注意的地方的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。