lua: передача параметра в другую функцию - PullRequest
2 голосов
/ 23 августа 2011

не уверен, что кто-нибудь когда-либо сталкивался с такой проблемой.вот мой код

в 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

после дня тестирования, я обнаружил, что перед тем параметром, который я передаю, он фактически передает мне другую таблицу, поэтому внесите эти изменения в highScore.lua:

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

так что теперь мой "другой код" может работать хорошо, но почему он передает мне таблицу перед моим параметром?

1 Ответ

4 голосов
/ 23 августа 2011

В Lua вызов объекта / таблицы с двоеточием вместо точки указывает, что объект / таблица должны быть переданы в функцию в качестве первого параметра (например, как self). Если вас это не волнует, вместо этого вызовите функцию с точкой:

highScore.InsertHighScore(userName, finishedTime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...