国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Lua語法(二)——閉包/日期和時間

這篇具有很好參考價值的文章主要介紹了Lua語法(二)——閉包/日期和時間。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

參考鏈接:
系列鏈接: Lua語法(一)
系列鏈接: Lua語法(二)——閉包/日期和時間
系列鏈接: Lua語法(三)——元表與元方法
系列鏈接: Lua語法(四)——協(xié)程
系列鏈接: Lua語法(五)——垃圾回收
系列鏈接: Lua語法(六)——面相對象編程

概述

關(guān)于閉包,模塊和包的概念。
Lua中的閉包、模塊和包都是用來組織和封裝代碼的機(jī)制。

閉包

閉包是指一個函數(shù)和其相關(guān)的環(huán)境變量的組合。當(dāng)一個函數(shù)在其外部定義的環(huán)境中使用某些變量時,這些變量將會保存在閉包中,使得函數(shù)可以在其定義之外的地方繼續(xù)使用這些變量。使用閉包可以實現(xiàn)很多高級的編程技巧,例如函數(shù)工廠、延遲計算等。

--閉包案例:url解碼
str = "word=%22%E4%BD%A0%E5%A5%BD%22;name=%22%E5%BC%A0%E4%BC%9F%22"
function urldecode(s)
    s = string.gsub(s,"+"," ")
    s = string.gsub(s,"%%(%x%x)",function (h)
        return string.char(tonumber(h,16))
    end)
    return s
end

print(urldecode(str))
--輸出	word="你好";name="張偉"

模塊和包

Lua5.1以后,引入了模塊和包

可以將其他lua文件作為模塊,讓當(dāng)前l(fā)ua文件調(diào)用

模塊和包相關(guān)函數(shù)
dofile、loadfile和require 的區(qū)別

在Lua語言中,dofile、loadfile和require都是用于加載和執(zhí)行Lua代碼的函數(shù),但它們之間有一些區(qū)別。

dofile函數(shù)是最簡單的加載和執(zhí)行Lua代碼的方式。它接受一個文件路徑作為參數(shù),并返回執(zhí)行結(jié)果。dofile函數(shù)會直接加載并執(zhí)行指定路徑的Lua腳本文件,返回腳本的執(zhí)行結(jié)果。每次調(diào)用dofile函數(shù)都會重新加載和執(zhí)行腳本文件。

loadfile函數(shù)用于加載Lua代碼塊并返回一個函數(shù)。它接受一個文件路徑作為參數(shù),并返回一個函數(shù)對象,該函數(shù)可以用于多次執(zhí)行該代碼塊。loadfile函數(shù)只加載并編譯腳本文件,不會立即執(zhí)行代碼。調(diào)用返回的函數(shù)對象可以多次執(zhí)行代碼塊,每次執(zhí)行返回執(zhí)行結(jié)果。

require函數(shù)是用于加載和執(zhí)行Lua模塊的函數(shù)。它接受一個模塊名作為參數(shù),并返回模塊的返回值。require函數(shù)先檢查指定的模塊是否已經(jīng)加載,如果已經(jīng)加載則直接返回模塊的返回值。如果模塊尚未加載,則會搜索Lua模塊路徑來查找并加載對應(yīng)的Lua文件。require函數(shù)只會加載和執(zhí)行模塊一次,后續(xù)調(diào)用require函數(shù)會直接返回緩存的模塊返回值。

需要注意的是,dofile和loadfile可以加載任意的Lua代碼文件,而require函數(shù)則只能加載具有特定規(guī)范的Lua模塊文件。

案例:

如果模塊名和文件名不一致,那么需要將模塊所在的文件放到Lua根目錄下的lua文件夾里面

如果模塊名和文件名一致,則可以將模塊所在的文件和當(dāng)前文件放在同一個文件夾下,所以,建議讓模塊名和文件名保持一致

例如模塊名 叫 model ,那么文件名叫 model.lua為一致

否則模塊會require調(diào)用失敗

require
--model.lua
local model = {
   }

model.wwww = function ()
    print("test")
end

return model		--這里不要忘記return

--test.lua
local mod =require("model")	--可以自定義一個本地的名字

mod.wwww()
--輸出	test
dofile

讀取文件并直接運行文章來源地址http://www.zghlxwxcb.cn/news/detail-850334.html

--block.lua
print("here is block")

local function block()
    print("bolck fun is doi

到了這里,關(guān)于Lua語法(二)——閉包/日期和時間的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Lua語法入門

    Lua是一種輕量級的腳本語言,它使用標(biāo)準(zhǔn)C語言編寫,并以源代碼形式開放。它的設(shè)計目標(biāo)是嵌入到應(yīng)用程序中,為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。您可以在官方網(wǎng)站https://www.lua.org/上了解更多關(guān)于Lua的信息。 Lua經(jīng)常被嵌入到C語言開發(fā)的程序中,例如游戲開發(fā)和游戲插

    2024年02月14日
    瀏覽(14)
  • lua基本語法使用

    1.基本語法 2.標(biāo)識符 全局變量和局部變量 4.ipairs() 和 pairs() 函數(shù)的區(qū)別 lua中只有false和nil為false,其余都為true 數(shù)據(jù)類型 number [[]] 可以包含換行的字符串 字符串與數(shù)字做數(shù)學(xué)運算時,優(yōu)先將字符串轉(zhuǎn)成數(shù)字 5.數(shù)據(jù)類型 -- table 6.數(shù)據(jù)類型---其他 7.索性 8.循環(huán) 流程控制 10.函數(shù) 可以

    2024年02月05日
    瀏覽(22)
  • 【Lua語法】字符串

    【Lua語法】字符串

    Lua語言中的字符串是不可變值。不能像在C語言中那樣直接改變某個字符串中的某個字符,但是可以通過創(chuàng)建一個新字符串的方式來達(dá)到修改的目的 可以使用長度操作符(#)來獲取字符串的長度 可以使用連接操作符(..)來進(jìn)行字符串連接 字符串常量 可以使用一對雙引號或

    2024年02月07日
    瀏覽(16)
  • Lua04——基本語法

    單行注釋 多行注釋 標(biāo)識符用于定義變量,作為變量名在程序中使用。 以字母及下劃線開頭,可以包含數(shù)字。 需要注意的是: 不能定義為下劃線+大寫字母,避免與Lua中的保留字沖突; 標(biāo)識符中不能包含@ $ % 等特殊字符; lua中字母區(qū)分大小寫 在默認(rèn)情況下,變量都是全局變

    2024年02月09日
    瀏覽(13)
  • Lua語法結(jié)構(gòu)

    Lua語法結(jié)構(gòu)

    **and ** break **do ** else **elseif ** **end ** false for **function ** if in local nil not or repeat return then true until **while ** nil ** boolean** ** number** ** string** ** function** ** userdata** thread ** table** ```lua –string print(“hello”…“world”); print(“1”…“2”) print(type(“1”…“2”)) – 12 string print(“1”+“

    2024年02月09日
    瀏覽(11)
  • Lua語法之簡單變量

    Lua語法之簡單變量

    運行結(jié)果

    2024年02月07日
    瀏覽(15)
  • lua語法學(xué)習(xí)筆記(速成版)

    使用官方的瀏覽器測試網(wǎng)站進(jìn)行代碼測試。wiki.loatos.com 創(chuàng)建變量 類似python,直接賦值即生成全局變量; 加 local 變成 僅本文件使用變量; 數(shù)據(jù)類型 nul和number 未被聲明(或叫創(chuàng)建)的值都是 nul,類似NULL。 number 數(shù)值型,支持16進(jìn)制表示法和科學(xué)計數(shù)法。 字符串 單引號

    2024年02月05日
    瀏覽(24)
  • Redis Lua腳本執(zhí)行原理和語法示例

    Redis Lua腳本執(zhí)行原理和語法示例

    在學(xué)習(xí)本文之前,我是強(qiáng)烈建議大家了解一下我的其他兩篇博客 《Redis 從入門到精通【進(jìn)階篇】一文學(xué)會Lua腳本》 《Redis 從入門到精通【進(jìn)階篇】之Lua腳本詳解》 Redis通過嵌入Lua解釋器,實現(xiàn)了對Lua腳本的執(zhí)行。在執(zhí)行過程中,Redis保證了腳本的原子性和阻塞性,同時通過腳

    2024年02月12日
    瀏覽(21)
  • 【LUA】時間面板顯示

    最近看了個HS的時間顯示的例子,順便學(xué)習(xí)了一下這個lua定義函數(shù)的方法,被折騰了許久,最后竟然是gpt解答了。 定義方式 在這個示例中,我們定義了一個名為 myObject 的對象,它有一個布爾屬性 isVisible,初始值為 false。然后,我們使用 function obj:toggleShow() 語法定義了 toggl

    2024年02月20日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包