Lua base load()

加載.png

前言

今天這個函數是一個非常非常危險的函數,我的電腦今天因為這個函數崩潰了兩次苞慢,奇怪的是這個函數雖然在lua5.1的版本說明文檔里艾扮,但是網上卻幾乎找不到關于它的任何用法掉盅。即使有個別的使用方法,在我的這個版本Lua5.1里也是運行不了的赃阀,提示語法錯誤霎肯。記過幾番周折我終于試著寫出了一種使用方式,但是我看不出他究竟有什么使用價值榛斯,我們還是一起來看一下吧观游。

內容


load

  • 原型:load(func [, chunkname])
  • 解釋:使用參數func所指定的函數來加載程序塊來獲得程序片段,每一次調用函數func必須返回一個字符串驮俗,這個字符串連接了先前調用的結果懂缕,如果返回一個空串""nil王凑、或者不返回值都標志著程序塊的結束搪柑。
  • 如果沒有錯誤函數會返回編譯好的程序塊作為一個函數,否則將會返回nil和錯誤信息索烹,函數的運行環(huán)境是全局環(huán)境工碾,參數chunkname通常被用來作為錯誤信息和調試信息使用,當省略時默認為"(load)" 术荤。

usage

  • 首先我們新建一個文件將文件命名為loadtest.lua然后編寫代碼如下:
-- 用來計數調用次數
local n = 0

-- 用來作為可以影響的變量
w = 0

-- 被掉函數
local function test(w)

    n = n + 1;
    print("test load function "..n.." times")

    if n > 10 then
        return nil
    else
        return "w = w + 1;"
    end
end

-- 輸出被調函數
print("\ntest function is", test, "\n")

-- 運行l(wèi)oad
local retfunc = load(test, "use test")

-- 輸出結果函數
print("\nretfunc function is", retfunc)

-- 輸出影響的變量
print("\nbefore use function ret func, w = "..w)

-- 調用結果函數
retfunc()

-- 輸出影響的變量
print("\nafter use function ret func, w = "..w)


local function func_error()
    return "1+1"
end

print("\nsecond load", load(func_error, "use func_error"))

  • 運行結果
base_load.png

總結

  • 先說說這個函數為什么把我的電腦整崩潰了倚喂,原因是一開始不會用,在網上費了好長時間找了一個程序瓣戚,寫完代碼測試——死循環(huán)了端圈,一般的死循環(huán)沾滿一個CPU,這個程序可倒好子库,4個CPU全是100%舱权,導致電腦崩潰了。
  • 它出現死循環(huán)的原因就是由于他的結束條件仑嗅,它會不斷的調用函數func宴倍,知道它返回空串张症、nil或者是不返回,可是一般寫好的函數鸵贬,怎么會突然不返回俗他,結果一直返回就死循環(huán)了。
  • 再說說返回值中代碼塊使用的變量w居然得是全局變量阔逼,否則編譯不過去兆衅,我不知道這么做有什么意義。
  • 最后生成函數的代碼里相當于有10句w = w +1;代碼嗜浮,由運行結果也證實了這一點羡亩。
  • 運行到最后我還是不明白這個函數究竟應該運用在什么場景下,請知道原因的大神們得我指點一下危融,謝謝了畏铆。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吉殃,隨后出現的幾起案子辞居,更是在濱河造成了極大的恐慌,老刑警劉巖寨腔,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件速侈,死亡現場離奇詭異,居然都是意外死亡迫卢,警方通過查閱死者的電腦和手機倚搬,發(fā)現死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乾蛤,“玉大人每界,你說我怎么就攤上這事〖衣簦” “怎么了眨层?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長上荡。 經常有香客問我趴樱,道長,這世上最難降的妖魔是什么酪捡? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任叁征,我火速辦了婚禮,結果婚禮上逛薇,老公的妹妹穿的比我還像新娘捺疼。我一直安慰自己,他們只是感情好永罚,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布啤呼。 她就那樣靜靜地躺著卧秘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪官扣。 梳的紋絲不亂的頭發(fā)上翅敌,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音醇锚,去河邊找鬼哼御。 笑死坯临,一個胖子當著我的面吹牛焊唬,可吹牛的內容都是我干的。 我是一名探鬼主播看靠,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赶促,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挟炬?” 一聲冷哼從身側響起鸥滨,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谤祖,沒想到半個月后婿滓,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡粥喜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年凸主,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片额湘。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡卿吐,死狀恐怖,靈堂內的尸體忽然破棺而出锋华,到底是詐尸還是另有隱情嗡官,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布毯焕,位于F島的核電站衍腥,受9級特大地震影響,放射性物質發(fā)生泄漏纳猫。R本人自食惡果不足惜婆咸,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望续担。 院中可真熱鬧擅耽,春花似錦、人聲如沸物遇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乃沙,卻和暖如春起趾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背警儒。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工训裆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜀铲。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓边琉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親记劝。 傳聞我的和親對象是個殘疾皇子变姨,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容