Lua 遞迴 實現萬能輸出ptable函式

2021-09-27 13:28:35 字數 1708 閱讀 9690

-

-[[遞迴ptable函式]]

function ptable(...)

local function pta(t,l)

local src,o="",

"" local l = l or0-

-[[記錄遞迴次數]]

local tab

= "\n"..string.rep("\t",l-1)

--[[tab空格]]

local i =0-

-[[記錄for迴圈次數]]

for k,v in pairs(t)

doif i >

0then o =

","end

i = i +

1 local key

,var="",

""if

type

(k)=

="string"

then

key= "[\'"..k.."\'] =

" else key = "["..k.."] = " end

--[[顯示["key"],注釋可隱藏]]

if l ==0

then

key=

""else

key= src .. o .. tab .. key

end-

-[[初始值不顯示key]]

iftype

(v)=

="table"

then

src =

key .. ""

else

iftype

(v)=

="string"

then

var =

"'"..v.."'"

elseif

type

(v)=

="number"

then

var = v

elseif

type

(v)=

="function"

then

var =

"function"

elseif

type

(v)=

="boolean"

then

if v then var =

"true"

else var =

"false"

endend

src =

key .. var

endif l ==0

then

print

(src)

--[[輸出]]

endendreturn src

endreturn pta()

--[[執行]]

endt=,,,{}},,}},

3}ptable(t,,)

--[[支援多表同時列印,支援列印"boolean"值,支援列印二值化]]

lua二值化函式原始碼

遞迴並非萬能

遞迴的確簡潔,但效能很差,因為它進行了大量重複的計算,如果用遞迴運算做乘法,5 4 5 4 3 2 1 4 3 2 1顯然4 完全可以算一遍,而遞迴結結實實的算了兩遍 如果我們把每一步運算的結果都用字典存起來,那就能減少大量的運算 給出1,2,3,4,5,n 一共n個數,求用它們能夠構成多少種形狀不...

利用webBrowser實現萬能列印

1.拖放webbrowser控制項並寫 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text...

c語言實現萬能求導

原理 如下圖,若要求曲線在a點的導數,則選取另一點b,求ab的斜率,b越靠近a,則斜率越接近要求的導數值 因此,可以設計原型如下 design a prototype double derivative point p,double accuracy 以下我給出乙份自寫的sample code,已經...