Lua 列印table 實現型別python的repr用於table
lua的互動環境裡,輸入型別為table的變數,竟然不顯示變數的內容,比起ipython來,體驗差的不是一星半點。google和bing也沒搜到好用的輪子,於是自己造了一個
-- utils.lua
utils = {}
function utils.is_empty(tab)
return not tab or next(tab) == nil
end
function repr(tab,...)
local i, s, is_list, is_nest = 1, '', true, select('#', ...)
local pre, sep = ' ', '\n'
if is_nest ~= 0 then
pre, sep = '', ' '
end
for k,v in pairs(tab) do
if i > 5 then
s = s..','..sep..pre..'...'
break
end
if i ~= 1 then
s = s..','
end
s = s..sep..pre
if k ~= i then
is_list = false
s = s..'"'..k..'": '
end
value_type = type(v)
if value_type == 'string' then
v = '"'..v..'"'
elseif value_type == 'table' then
v = repr(v, 1)
end
s = s..v
i = i + 1
end
if is_list then
s = '['..s..sep..']'
else
s = '{'..s..sep..'}'
end
return s
end
utils.repr = repr
return utils
Usage::
$ lua
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> require('utils')
table: 0x7ff4e15009f0
> repr = utils.repr
> a = {1, 2, 3}
> repr(a)
[
1,
2,
3
]
> b = {a=1, b=2, c=3}
> repr(b)
{
"a": 1,
"b": 2,
"c": 3
}
> c = {{a=1},{b=2},{c=3}}
> repr(c)
[
{ "a": 1 },
{ "b": 2 },
{ "c": 3 }
]
>
相關文章
- TABLE型別的使用型別
- delete table 和 truncate table - 型別安全的心 - 部落格園delete型別
- Lua Table 長度的計算
- 什麼是Clustered Table,與其他型別的table有何不同型別
- LUA基礎: TABLE, ARRAY, NAMESPACE, LUA的物件導向namespace物件
- TABLE居然也是資料型別資料型別
- drop table和truncate table的區別
- 簡述用React實現Table元件React元件
- table和record 型別用作引數型別
- sap table 分為三種型別(轉)型別
- vue+element-ui+js頁面列印(列印elementui的table)VueUIJS
- alter table move 和 alter table shrink space的區別
- 用record型別和table型別儲存查詢語句返回的多條記錄 的例子型別
- 基於element-ui實現table可配置化UI
- 使用自定義lua解析管理器呼叫lua指令碼中的table指令碼
- Oracle --- PLAN_TABLE$和PLAN_TABLE區別Oracle
- [PAT]Table Tennis (30)Java實現Java
- 【轉】dbms_stats.gather_table_stats與analyze table 的區別
- 揭秘Python:物件型別列印Python物件型別
- 從零實現Vue的元件庫(十二)- Table 實現Vue元件
- html~table、table cell的使用HTML
- [譯]WebAssembly的匯入型別 table 到底是什麼?Web型別
- dbms_stats.gather_table_stats與analyze table 的區別[轉貼]
- 關於用display:table讓元素居中的小結
- table move 與 shrink 的區別
- WPF實現html中的table控制元件HTML控制元件
- 關於MYSQL flush table的作用MySql
- 用css實現thead隨著滑動條滾動的tableCSS
- 關於 mysql 中的 select * from table_a,table_b 的問題MySql
- 拆分Table 為Partition Table
- 實現table細線表格效果程式碼
- PL/SQL基本結構---PLSQL複合型別---表型別變數tableSQL型別變數
- 實現一個可無限摺疊的table
- Python中str()和repr()函式的區別Python函式
- MySQL的create table as 與 like區別MySql
- display:table-cell的應用
- [UE] Data Table 對比工具 —— 用於 Data Table 對比以前的資料,檢視有什麼修改
- python中的str和repr函式的區別Python函式