@jon4god

Почему переменная определяется как строковая?

При вызове функции получаю ошибку "attempt to call a string value".
Если передаю в нее значение так
t={1, 2, 3}
то нет ошибки
но если передаю значение через обработку строки
s="1,2,3"
функцией
function toarray(s)
    local t = {}
    s:gsub('%-?%d+', function(n) t[#t+1] = tonumber(n) end).
    return t
end

и передаю
t=toarray(s)
то появляется эта ошибка. Проверяю результат обработки функции, там массив. Не понимаю ничего.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Скорее всего запутался с глобальными переменными. Используй local везде.
Попробуй этот кусок кода в онлайн интерпретаторе отладить.

https://repl.it/repls/CornsilkMemorableLanserver
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы