나는 기능의 몇 가지 포함하는 매우 간단한 중첩 테이블 Aurora64.Chat
이 (주 Aurora64
클래스가 다른 곳에서 초기화하지만 완전성을 위해 여기에 삽입) :이 함수와 호출에 대한 접근 방식이 잘못 되었습니까?
Aurora64 = {};
Aurora64.Chat = {
entityId = 0;
Init = function()
local entity; --Big long table here.
if (g_gameRules.class == "InstantAction") then
g_gameRules.game:SetTeam(3, entity.id); --Spectator, aka neutral.
end
entityId = Entity.id;
self:LogToSystem("Created chat entity '" .. entity.name .. "' with ID '" .. entity.id .. "'. It is now available for use.");
end
LogToSystem = function(msg)
System.LogAlways("$1[Aurora 64]$2 " .. msg);
end
}
위의 코드는 다음과 같이 (checked with the Lua Demo을) 실패 :
는입력 : 14 '}'(근접하는 '{'선 (3)에서) 'LogToSystem'근처
I 내지 Tr 한 예상 한 LogToSystem
함수 및 사용법을 확인했습니다 (함수를 제거하면 코드가 완벽하게 컴파일됩니다). use of concatenation (사용하지 않았 음)과 관련이 있다고 생각했습니다.
내가 간단한 것을 놓친 것 같지만, checked the documentation on functions과 &의 호출이 제대로 작성된 것 같습니다.
내가 여기서 정확히 무엇을 잘못하고 있습니까?
아마도'self : LogToSystem'은'Aurora64.Chat' 테이블 밖에 있어야할까요? –
루아 테이블에는 익숙하지 않은가? 먼저,'Init'에'LogToSystem'을 포함하려고합니다. 아직 선언되지 않았기 때문에 가능하지 않습니다. 그렇다고하더라도 여러분은 그것을 Global이 아닌 Chat 테이블 자체의 일부로 선언 할 것입니다. 그런 다음'self : LogToSystem'을 선언하려고합니다.'self '는'Chat'자체를 가리키는 일종의 키워드라고 생각할 것입니다. 너 혼란스러워. 이러한 메서드를 호출하는 방법을 설명하고 아마도 당신을 도울 수있을 것입니다. – user6245072
'entityId'와 다른'entity.id'로 무엇을하려고하는지 명확하지 않습니다. – user6245072