2011-08-23 5 views
2

확실하지 않은 사람이 이런 종류의 문제가 있습니다. 여기 main.lua에 내 코드lua : 다른 함수 문제로 매개 변수 전달

입니다 :

가 highScore.lua에서
local highScore = require("highScore") 
local username = "myName" 
local finishedTime = 12345 

highScore:InsertHighScore(userName, finishedTime) 

function InsertHighScore(name,time) 
    print(name) 
    print(time) 
    -- other code 
end 

간단보고 잘못 안,하지만 내 콘솔에서 쇼를 넣어 :

table: 0x19e6340 
myName 

테스트 당일이 지난 후에 필자는 2 개의 매개 변수가 전달되기 전에 실제로 다른 테이블을 나에게 전달 했으므로 highScore.lua에 이러한 변경 :

그래서
function InsertHighScore(table,name,time) 
    print(table) 
    print(name) 
    print(time) 
    -- other code 
end 

지금 내 "기타 코드"가 잘 작동 할 수 있지만, 왜 내 매개 변수 앞에 나에게 표를 통과?

답변

4

루아에서는 점 대신 콜론을 사용하여 개체/테이블을 호출하면 개체/테이블을 첫 번째 매개 변수로 함수에 전달해야 함을 나타냅니다 (예 : self). 점은 대신 클래스의 매개 변수를 액세스하는 것을 의미하지 않도록 그래서 지금 내가 문제를 참조하십시오 ...

highScore.InsertHighScore(userName, finishedTime) 
+0

확인 : 당신이 걱정하지 않는 경우, 대신에 점이있는 함수를 호출 함수 호출? – FunFair

+0

어쨌든, 귀하의 빠르고 duskwuff에 대한 귀하의 빠르고 깨끗한 답장을 보내 주셔서 정말로 감사합니다. =) – FunFair

+1

매개 변수를 액세스하고 함수를 호출하는 것은 실제로 같은 일입니다 *. 'highScore.InsertHighScore'는 함수를 매개 변수로 가져옵니다. 괄호로 추가하면 함수가 호출됩니다. – duskwuff