2011-08-23 73 views
2

不知道有人曾經遇到過這種問題。這裏是我的代碼lua:將參數傳遞給其他功能問題

在main.lua:

local highScore = require("highScore") 
local username = "myName" 
local finishedTime = 12345 

highScore:InsertHighScore(userName, finishedTime) 
在highScore.lua

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

在Lua中,使用冒號而不是點的方式調用對象/表時,表示對象/表應該作爲第一個參數傳入函數(例如,作爲self)。如果你不關心它,然後調用一個點而不是函數:

highScore.InsertHighScore(userName, finishedTime) 
+0

確定...所以現在我看到的問題,所以點並不意味着它的訪問類的參數,而不是調用函數? – FunFair

+0

無論如何,thx爲您的快速而乾淨的回覆duskwuff,真的很感謝您的幫助,謝謝=) – FunFair

+1

實際上,訪問參數和調用函數是*相同的東西*。 'highScore.InsertHighScore'獲得函數作爲參數,添加括號調用它。 – duskwuff