1
두 환경에서 작동해야하는 명령 처리기에서 일하고 있습니다. 아래는 내가 작업하고있는 함수의 작은 부분이며 문제를 파악한다고 생각합니다. 적어도 내가 주소를 지정하라는 오류 메시지가 표시됩니다.Lua 유연한 함수 인수 로컬 함수에서 풀기
라이브 환경에서 Fibaro 홈 센터 2는 호출에 따라 2-337 개의 인수를 취하는 fibaro:call
을 사용하여 테이블에서 주어진 명령 세트를 하나씩 실행해야합니다.
개발 중에 나는 발행 된 명령을 인쇄하기 위해 print
함수를 대신 사용합니다. 내가 어떻게 unpack
작품에 대해 이해하고 있지 않다 무엇
stdin:10: bad argument #1 to 'unpack' (table expected, got nil)
stack traceback:
[C]: in function 'unpack'
stdin:10: in function 'callFunc'
stdin:15: in function 'movementHandler'
stdin:1: in main chunk
[C]: in ?
: 나는 루아 명령 쉘
> c= {}
> c[1] = {1,"turnOn"}
> c[2] = {1,"setValue",10}
> movementHandler(10,c,c)
이를하려고 할 때
function movementHandler(movementSendorId,onTable)
local offTable = offTable or {};
local onTable = onTable or {};
if (fibaro or {}).call then
function callFunc(...) ;
return fibaro:call(...);
end;
else
function callFunc(...)
print(unpack(arg));
end;
end;
if onTable ~= {} then
for i,command in pairs(onTable) do
callFunc(unpack(command));
end;
end;
end;
그러나,이 출력을 얻을?
환상적인를 사용! 나는 루아 세계에서 "기능적으로 부족함"과 같은 것을 알아 차리기에 충분하지 않습니다. 부끄러운 줄 알아. :-) 고맙습니다! –
@Fredrik 루아 랜드는 멋진 위치입니다 :) – warspyking
@warspyking - 루아 랜드는 "어두운 구석"을 가지고 있습니다. 그 동물 군은 초보자 증오 동물들이 뛰어 다니고 있습니다. –