Lua string.dump()

序列化.jpg

前言#

今天我們來一起看一個(gè)神奇的函數(shù)诡渴,這個(gè)函數(shù)乍一看根本不知道是干嘛用的竿音,仔細(xì)一看還是不明白娘摔,在查詢了多方資料以后終于命名明白他的用途窄坦,這里不得不提到一個(gè)詞——序列化。

序列化 (Serialization)將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程凳寺。在序列化期間鸭津,對象將其當(dāng)前狀態(tài)寫入到臨時(shí)或持久性存儲區(qū)。以后肠缨,可以通過從存儲區(qū)中讀取或反序列化對象的狀態(tài)逆趋,重新創(chuàng)建該對象。

這個(gè)詞聽起來就高大上晒奕,但是我們今天的函數(shù)用起來卻非常簡單闻书,就是調(diào)用函數(shù)stringdump()將其它函數(shù)序列化,然后函數(shù)就可以傳遞了脑慧,還把函數(shù)傳遞到另一個(gè)進(jìn)程惠窄,甚至存儲到文件中都是可以的。

內(nèi)容#


string.dump()##

  • 原型:string.dump (function)
  • 解釋:返回一個(gè)包含所給函數(shù)二進(jìn)制描述的字符串漾橙,以至于在此之后可以使用函數(shù)loadstring()利用所得到的字符串來返回一個(gè)函數(shù)拷貝杆融,需要注意的是函數(shù)只能是Lua函數(shù)并且沒有upvalues(外部局部變量)。

Usage##

  • 首先新建一個(gè)文件將文件命名為dumptest.lua然后辨析額如下代碼:
--自定義一個(gè)函數(shù)
function custom_func(num1, num2)
    local ret = num1 + num2;
    print("\nnum1 = "..num1)
    print("num2 = "..num2)
    print("num1 + num2 = "..ret)
end

-- 將函數(shù)序列化
local func_content = string.dump(custom_func)
print("\nfunc_content = "..func_content)

-- 將轉(zhuǎn)化后的字符串寫入文件
local outfile = io.open("dumptest.txt", "w")
local outnum = outfile:write(func_content)
outfile:close()

-- 從文件總讀取內(nèi)容
local infile = io.open("dumptest.txt", "r")
local incontent = infile:read("*a")
infile:close()
print("\ninput content is "..incontent)

-- 加載函數(shù)
local myfunc = loadstring(incontent)

-- 執(zhí)行函數(shù)
myfunc(1, 1)

myfunc(3, 6)

-- 輸出這個(gè)幸福的七月七
myfunc("7" ,".7")

print("\nthis is a happy day!")
print(os.date())
  • 運(yùn)行結(jié)果:
string_dump.png

總結(jié)#

  • 看了這個(gè)函數(shù)是不是有種非常神奇的感覺霜运,原來傳說中的序列化可以離我們這么近脾歇。
  • 在調(diào)用了函數(shù)string.dump()之后函數(shù)custom_func()被轉(zhuǎn)化成字符串保存在文件中,可以在使用時(shí)再取出來淘捡。
  • 這個(gè)函數(shù)一般寫邏輯代碼應(yīng)該用不到藕各,更多的是做框架的時(shí)候用的功能,進(jìn)過序列化的函數(shù)可以通過網(wǎng)絡(luò)傳送焦除、轉(zhuǎn)化激况、再使用。
  • 好了,在這個(gè)幸福的日子里乌逐,祝你節(jié)日快樂吧竭讳,別在這搬磚了,抓緊撩妹去吧浙踢。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绢慢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子洛波,更是在濱河造成了極大的恐慌胰舆,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹬挤,死亡現(xiàn)場離奇詭異缚窿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)焰扳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門滨攻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蓝翰,你說我怎么就攤上這事光绕。” “怎么了畜份?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵诞帐,是天一觀的道長。 經(jīng)常有香客問我爆雹,道長停蕉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任钙态,我火速辦了婚禮慧起,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘册倒。我一直安慰自己蚓挤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布驻子。 她就那樣靜靜地躺著灿意,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崇呵。 梳的紋絲不亂的頭發(fā)上缤剧,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音域慷,去河邊找鬼荒辕。 笑死汗销,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抵窒。 我是一名探鬼主播弛针,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼估脆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起座云,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤疙赠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后朦拖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圃阳,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年璧帝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捍岳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡睬隶,死狀恐怖锣夹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苏潜,我是刑警寧澤银萍,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站恤左,受9級特大地震影響贴唇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜飞袋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一戳气、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巧鸭,春花似錦瓶您、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巷折,卻和暖如春压鉴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锻拘。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工油吭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留击蹲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓婉宰,卻偏偏與公主長得像歌豺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子心包,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第一篇 語言 第0章 序言 Lua僅讓你用少量的代碼解決關(guān)鍵問題类咧。 Lua所提供的機(jī)制是C不擅長的:高級語言,動態(tài)...
    testfor閱讀 2,668評論 1 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理蟹腾,服務(wù)發(fā)現(xiàn)痕惋,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法娃殖,類相關(guān)的語法值戳,內(nèi)部類的語法,繼承相關(guān)的語法炉爆,異常的語法堕虹,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 6,404評論 0 17
  • 以后若還會有爭吵我就溫柔對待你 像你哄我那樣哄你螟炫,絕不來硬的。只因?yàn)橐涨纾覑勰恪?/div>
    情若太狂閱讀 195評論 0 0