Как исправить "'=' ожидается рядом '.'ошибка в Lua - PullRequest
2 голосов
/ 02 октября 2019

Эта ошибка возникает в строке 3 моего кода, и я не знаю почему.

Я пытаюсь создать несколько переменных с помощью x..q, но это не работает.

for i=1,3 do
  for q=1,3 do
    x..q=i+1
    print(x..q)
  end
end

Вывод должен быть: 2 2 2 3 3 3 4 4 4

Но вместо этого он возвращает ошибку в заголовке.

Ответы [ 2 ]

5 голосов
/ 02 октября 2019

Если вы хотите создать несколько глобальных переменных, используйте код, подобный следующему:

for i=1,3 do
  for q=1,3 do
    _G["x"..q]=i+1
    print(_G["x"..q])
  end
end

Этот код создаст глобальные переменные x1, x2 и x3.

Но я думаю, вам лучше использовать таблицу:

x={}
for i=1,3 do
  for q=1,3 do
    x[q]=i+1
    print(x[q])
  end
end
1 голос
/ 02 октября 2019

Я полагаю, вы используете оператора .. непреднамеренно.

При доступе к значению таблицы синтаксис x.q. Программирование на Lua: 2.5 - Таблицы

Для представления записей вы используете имя поля в качестве индекса. Lua поддерживает это представление, предоставляя a.name в качестве синтаксического сахара для ["name"]. Таким образом, мы могли бы написать последние строки предыдущего примера более чистым образом как

a.x = 10                    -- same as a["x"] = 10
print(a.x)                  -- same as print(a["x"])
print(a.y)                  -- same as print(a["y"])

При объединении строки синтаксис будет x .. q. Программирование на Lua: 3.4 - Конкатенация

Lua обозначает оператор конкатенации строк через ".." (две точки). Если какой-либо из его операндов является числом, Lua преобразует это число в строку.

print("Hello " .. "World")  --> Hello World
print(0 .. 1)               --> 01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...