Lua에서 C++로 테이블을로드하려고합니다.Lua 파일을로드하고 함수를 실행하지 않고 변수를 사용하십시오.
function alma(arg)
print(arg)
end
sometable = {
num = 5,
text = "this is a string",
nested = {
{"a", alma("argument")},
{"table", alma("arg")},
{"element", alma("asd")}
}
}
을 나는 단지 덩어리를 얻을 luaL_loadfile
를 호출 할 경우이 파일이 모습입니다. lua_dofile
으로 전화하면 요소를 얻지 만 각 요소에 대해 alma 함수가 실행됩니다. this SO 스레드에서 누군가가 이러한 종류의 항목을 함수로 랩핑하여 데이터를 가져 오라고했습니다. 내가 랩/함수를 호출 할 때 3 개의 alma 함수가 getter를 호출하는 순간을 실행합니다. alma 함수를 실행하지 않고 sometable
과 그 요소를 얻으려면 어떻게해야합니까?
당신은 해당 테이블의 일부 요소의 게으른 평가를 구현하기 위해 테이블에 메타 테이블 사용할 수 있습니다 . 그러므로, 'alma'는 처음으로 해당 엘리먼트에 접근 할 때에 만 호출된다. 이 기능은 투명합니다. 즉, 명시 적으로 일부 함수를 호출 할 필요가 없습니다. –