Lua 테이블 내용 출력하기

Lua 테이블을 다루면서 내가 다루고 있는 Lua 테이블의 내용이 궁금해서 테이블 값 출력하는 함수를 만들었다.
별다른건 없고 그냥 테이블 순회하면서 테이블의 key와 value를 출력한다.
value를 출력할때는 boolean형과 string 연산을 할 수 없기 때문에 tostring()을 사용하여 value를 무조건 string으로 만들어서 출력하였다.
test_tbl = {
	t1 = {
		t1_a = 1,
		t1_sub = {
			t1_sub_b = 2,
		},
	},
	t2 = {
		t2_a = 3,
		t2_sub = {
			t2_sub_b = 4,
			t2_sub_sub = {
				t2_sub_sub_c = 5,
			},
		}
	},
}

function PrintTable(tbl, tbl_name, depth)
	if depth == nil then
		depth = 0
	end

	local tab
	for i=0, depth do
		if tab == nil then	tab = "" else tab = tab .. "\t" end
	end

	local sub_tbl = {}
	for k,v in pairs(tbl) do
		print(tab .. "TABLE:" .. tbl_name .. " KEY:" .. k .. "\tVALUE:" .. tostring(v))

		if type(v) == "table" then
			PrintTable(v, k, depth+1)
		else

		end
	end
end


결과를 보면 테이블의 값들이 표시되고 중첩테이블은 탭이 적용되어서 출력되고 있다.
한눈에 보일정도는 아니지만 테이블의 값 구성을 간단히 출력해서 확인하기에는 적절한듯하다.


'프로그래밍' 카테고리의 다른 글

Pointer Container, boost::ptr_vector<>  (0) 2012.02.21
Office Add-in 만들기.  (0) 2012.02.08
Lua Table 복사에 대한 처리  (0) 2012.01.16
Cafe24 가상 호스팅 - 1(선택)  (0) 2011.12.02
Lua의 주석처리  (0) 2011.11.27