function foo()
print(g or "'g' is not defined!")
endfoo()
env =
setfenv(foo, env) --設定foo的環境為表env
foo()
print(g or "'g' is not defined!")
輸出結果:
'g' is not defined!
'g' is not defined!
函式環境
函式環境就是乙個函式在執行時所能訪問的「全域性」變數的集合,裝在乙個
表中。在預設狀態下,乙個函式與定義它的函式共享同乙個環境;但是每個
函式都可以有自己獨立的環境,通過setfenv來設定。在前面的**中,函式foo的預設環境裡沒有定義變數g,因此第一次執行foo, g為nil。隨後,foo被指定了乙個環境 。這個環境定義了(全域性)變數g,以及列印函式print,因此第二次執行foo,g的值就是100。但是在定義函式foo的函式的環境下,g仍然是乙個未定義的變數。函式環境是乙個比較複雜的概念,建議讀者結合示例與文件仔細體會。
應用利用它可以實現「安全沙箱」執行不受信任的**;另外lua的模組
(module)的實現也依賴它。
linux環境程式設計 環境變數 列印環境變數
在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...
環境變數PATH和環境變數PATHEXT的還原
一,計算機 屬性 高階系統設定 環境變數 然後在系統變數裡新建變數pathext通常預設值為.com exe bat cmd vbs vbe js jse wsf wsh 二,系統變數中新建變數path預設值可以通過以下步驟進行 1 按win r,輸入regedit 2 在登錄檔裡,定位到hkey ...
了解環境變數並設定環境變數
設定環境變數前,我們先了解一下什麼是環境變數。環境變數是當要求系統執行乙個程式而沒有告訴它程式所在的完整路徑時,系統除了在當前目錄下面尋找此程式外,還應到path中指定的路徑去找 環境變數分為系統環境變數和使用者環境變數。環境變數是指系統環境變數,對所有使用者起作用 而使用者環境變數只對當前使用者起...