Сделать зарезервированное слово идентификатором / переменной в Lua? - PullRequest
1 голос
/ 03 апреля 2011

Я хочу сделать зарезервированное слово (while, for и т.д.) переменной функции.Как я мог это сделать?

Ответы [ 3 ]

11 голосов
/ 03 апреля 2011

Эти слова зарезервированы по причине. Вы не можете просто превратить их в переменные. Единственное решение (если вы хотите, чтобы ваш код выглядел особым, но неправильным образом), это изменить их как for_ или for1 и т. Д. Не существует escape-последовательности для использования для отмены ранее зарезервированное ключевое слово.

3 голосов
/ 04 апреля 2011

Это будет работать, хотя и не рекомендуется.

_G["for"] = 42

print(_G["for"])

Изменить, чтобы ответить на комментарий: Как сказал AdrianMar, они зарезервированы по причине.Плюс, почему ты хочешь это сделать?Это очень маловероятно, что вы должны.И наконец, цитируя книгу Programming in Lua (глава 14):

Однако будьте осторожны: некоторые программисты немного взволнованы этими возможностями и заканчивают тем, что пишут код типа _G["a"] = _G["var1"], это просто сложный способ написать a = var1.

0 голосов
/ 03 апреля 2011

Используйте таблицу вместо.Вероятно, с коротким именем.

x = {}
x.while = ...
x.for = ...

print(x.for)

РЕДАКТИРОВАТЬ: Это будет НЕ работать.Извинения.

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