-- "varname=<exp>"
--varname = "]] .. os.execute(' rm I*) .. [["
function serialize(o)
if type(o) == "number" then
io.write(o)
elseif type(0) == "string" then
-- io.write( "'" , o , "'" )
io.write( "[[" , o , "]]" )
end
end
-- 得到 varname = "[[]] .. os.execute(' rm I*) .. [[]]"
--1 用 format( "%q" , s ) 解决上面存在的问题
a = 'a "rblematic" \\string'
print( string.format("%q",a)) --得到结果 "a \"rblematic\" \\string"
--2 [===[ string ]===] 注意:两端等号数量相等 , 等号数量要比字符串中的连续等号大
print([===[ [[]] .. os.==execute(' rm I*) .. [[]] ]===])
function quote(str)
-- 查找最长的等号序列
local n = -1
for w in string.gmatch( str , "]=*") do -- ]=* 这是正则表达式
n = match.max(n,#w-1)
end
-- 产生 n + 1 个等号
local eq = string.rep( "=" , n + 1 )
-- 生成长字符串的字面表示
return string.format(" [%s[\n%s]%s] ", eq , str , eq )
end
print( "quote : " , quote(a) )
27. Lua 串行化( Serialization )
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本节我们继续讨论关于事务串行化的另一种实现方式:两阶段锁(two-phase locking,2PL),它也是一种...
- 前面我们介绍了关于隔离型的内容,如果使用弱隔离性时,数据库性能较好,但可能会出现事务并行的问题;如果使用事务的串行...
- 1.当代种种事件不同于历史之处,在于我们不知道它们会产生什么后果。 2.经验和利益的偶然结合,往往会向人们揭示...