Lua 筆記 序列化 require和模板

2021-09-23 19:48:08 字數 1646 閱讀 2946

--序列化:

function serialize(o)

if type(o) == "number" then

io.write(o)

elseif type(o) == "string" then

io.write(string.format("%q", o))

elseif type(o) == "table" then

io.write("\n")

else

endendserialize(2)

print("\n")

serialize("jacedy")

print("\n")

serialize()

--輸出:

2"jacedy"

require的使用:

--[[

require("test1")        --test1 ==> test1.lua

showname("jacedy")      --showname() 為test1.lua 中的乙個函式,載入後可直接使用

]]local m = require("test1")

m.showname("jacedy")

--按路徑載入

載入過程:

1、判斷這個包是否存在

2、判斷包是否載入

3、如果沒有返回nil 或者報錯

4、反之則返回相應的模組物件

模組(module)的編寫方法:

--test1.lua

complex = {}

function complex.showname()        --表示showname屬於complex

print("jacedy")

endreturn complex

--test2.lua

local t = require("test1")

t.showname()                    -->jacedy

--編寫模板的基本方法

--方法一:

local m = {}

complex = m --模組名

m.i = 

function m.new( r, i )

return 

endfunction m.add( c1, c2 )

return m.new(c1.r + c2.r, c1.i + c2.i)

endreturn m

--方法二:(優化)

local modname = ...

local m = {}

_g[modname] = m 

package.loaded[modname] = m 

--經過這樣的修改,若需要重新命名乙個模板,只需重新命名並定義它的檔案就可以了

--通過這樣的賦值,就不需要在模板結尾返回m了

m.i = 

function m.new( r, i )

return 

endfunction m.add( c1, c2 )

return m.new(c1.r + c2.r, c1.i + c2.i)

end

lua序列化函式

此函式用來序列化table function serialze tbl,filename print filename file io.open filename,w if file nil then return end function serl tbl if type tbl number t...

序列化(序列化)

原書上翻譯為序列化,msdn翻譯為序列化 作用 當需要儲存,或者網路傳輸 remoting時,資料 物件或值 需要序列化 類似於打包傳輸檔案。system.serializableattribute 序列化是指儲存和獲取磁碟檔案 記憶體或其他地方中的物件。在序列化時,所有的例項資料都儲存到儲存介質上...

序列化(模型序列化 序列化巢狀)

from rest framework import serializers from meituan.models import merchant,class merchantserializer serializers.modelserializer class meta model merch...