2015-05-26 2 views
1

У меня есть таблица lua, которую я использовал для обмена значениями между файлами. Но я путаюсь в следующем случаеlua table global/local var get confused

utility.lua файла

M = {} 
M.host_url = '192.168.0.1' 
function M.myFunc() 
    print(M.host_url) 
end 
return M 

в моем main.lua

utility = require('utility') 
utility.myFunc() -- this gives me 'a nil value' error 

Я получаю сообщение об ошибке (значение ноль) для host_url?

+0

Как вы используете этот фрагмент кода? В какой среде? Потому что этот буквальный фрагмент с добавленным ниже «M.myFunc()» работает правильно. Можете ли вы показать нам более репрезентативную выборку используемого кода? –

+0

Я снова редактировал свой вопрос. Я использовал его в другом файле lua. – wildcolor

+0

У меня действительно было возвращение M в конце – wildcolor

ответ

1

В M.myFunc выполняется только действие печати, функция которого ничего не будет возвращена. В вашем файле утилиты, возвращающем весь массив, он отображается ниже кода, который очистит ваш doudt.

В main.lua

utility = require('util') 
value = utility.host_url 
print(value) 
+0

Это работает, чтобы получить значение, но не объясняет или не устраняет основную проблему. –

+0

Можете ли вы объяснить ясно. Какова путаница, которую вы получаете? Я не понимаю, о чем вы спрашиваете? – AndroidUser

+0

@AndroidUser спасибо. Ответ siffiejoe уже решил мой вопрос. – wildcolor