好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Lua的函數環境、包實例講解

Lua的函數環境、包實例講解

熱門標簽:個人怎么在地圖標注需要的店鋪 武漢外呼防封系統多少錢 新岸線智能電銷機器人 百度地圖標注早餐區域 怎么去除地圖標注 清朝地圖標注哈爾濱 冀州市地圖標注 地圖標注大廈 漳州智云呼電話機器人

復制代碼 代碼如下:

function foo()
   print(g or "No g defined!")
end
foo()
setfenv(foo, { g = 100, print = print }) --設置foo的環境為表{ g=100, ...}
foo()
print(g or "No g defined!")
--No g defined!
--100
--No g defined!

定義:函數環境就是函數在執行時所見的全局變量的集合,以一個表來承載。

說明:每個函數都可以有自己的環境,可以通過setfenv來顯示的指定一個函數的環境。如果不顯示的指定,函數的環境缺省為定義該函數的函數的環境。在前面的代碼中,函數foo的缺省環境里沒有定義變量g,因此第一次執行foo, g為nil,表達式g or "No g defined!"的值就是"No g defined!"。隨后,foo被指定了一個環境 { g = 100, print = print }。這個環境定義了(全局)變量g,以及打印函數print,因此第二次執行foo,g的值就是100。但是在定義函數foo的函數的環境下,g仍然是一個未定義的變量。

應用:函數環境的作用很多,利用它可以實現函數執行的“安全沙箱”;另外Lua的包的實現也依賴它。

復制代碼 代碼如下:

--mypack.lua:
module(..., package.seeall) --定義包
ver = "0.1 alpha"
function aFunInMyPack()
    print("Hello!")
end
_G.aFuncFromMyPack = aFunInMyPack

復制代碼 代碼如下:

--testP.lua:
pack = require "mypack" --導入包
print(ver or "No ver defined!")
print(pack.ver)
print(aFunInMyPack or "No aFunInMyPack defined!")
pack.aFunInMyPack()
print(aFuncFromMyPack or "No aFuncFromMyPack defined!")
aFuncFromMyPack()

復制代碼 代碼如下:

--執行testP.lua結果
No ver defined!
0.1 alpha
No aFunInMyPack defined!
Hello!
function: 0068CB50
Hello!

定義:包是一種組織代碼的方式。

實現方式:一般在一個Lua文件內以module函數開始定義一個包。module同時定義了一個新的包的函數環境,以使在此包中定義的全局變量都在這個環境中,而非使用包的函數的環境中。理解這一點非常關鍵。以前面的代碼為例, “module(..., package.seeall)”的意思是定義一個包,包的名字與定義包的文件的名字相同(除去文件名后綴,在前面的代碼中,就是“mypack”),并且在包的函數環境里可以訪問使用包的函數環境(比如,包的實現使用了print,這個變量沒有在包里定義,而是定義在使用包的外部環境中)。

使用方式:一般用require函數來導入一個包,要導入的包必須被置于包路徑(packagepath)上。包路徑可以通過package.path或者環境變量來設定。一般來說,當前工作路徑總是在包路徑中。

您可能感興趣的文章:
  • 解決nginx+lua搭建文件上傳下載服務問題
  • Lua在windows下的安裝及環境配置
  • 安裝Nginx+Lua開發環境
  • Mac平臺中編譯安裝Lua運行環境及Hello Lua實例
  • 解析Lua中的全局環境、包、模塊組織結構
  • Lua在各個操作系統中的開發環境配置教程
  • linux系統安裝Nginx Lua環境
  • 如何使用Vim搭建Lua開發環境詳解

標簽:德宏 濰坊 天門 臺灣 儋州 天門 宣城 金昌

巨人網絡通訊聲明:本文標題《Lua的函數環境、包實例講解》,本文關鍵詞  Lua,的,函數,環境,包實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua的函數環境、包實例講解》相關的同類信息!
  • 本頁收集關于Lua的函數環境、包實例講解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲精品第四页中文字幕| 夜晚福利视频| 欧美精品久久久久A片2023| 798艺术课照片大全| japanese色系freevi日本| 当着丈夫的面被耍了| bl文库里不能碰不要了| 亚洲欧美一级久久精品| s货c货大声点| 亚洲午夜国产精品无卡| 我和妽妽伦理HD12| 色三级大全高清视频在线观看| 国模15p| 男男撅高狠打屁股调教| 好爽?好紧?宝贝别夹大巴视频 | 韩国深夜福利视频19禁AV| 欧美亚洲国产另类无码综合网 | 免费 成 人 黄 色 网站PP| 在车上摸两乳爽的大叫电影| 日本亲子乱婬一级A片| 老少亂伦videos| 久久精品操| 天天操综合网| 古典武侠第一页777eh| 久久棈精品久久久久久噜噜蜜月| 美女国产一区| 91桃色软件使用教程| 男女激烈进出动态图| 男生互摸鸡鸡| 桃花小说| 国产精品美女久久久久久久久久久| 国产精品无码一区二区在线观动漫| 陪读乱肉宾馆小说| 快穿耽美| 久久久久无码国产精品不卡| 色婷婷电影网| 成人动漫app| 爱谁谁风流书呆小说| 中文字幕乱码人妻二区三区 | 淫悦二次元| 凹凸精品熟女在线观看|