Привет, я новичок в Lua, я просто хочу знать, есть ли способ получить ключ и значение таблицы , не используя пары, ipairs, следующие или итераторы? заранее спасибо.!Перемещение таблицы без использования пар в Lua
ответ
Я не считаю, что это возможно, поскольку вы сформулировали свой вопрос таким образом, что подразумевается, что ключ неизвестен. Единственный способ проверить определенное значение и соответствующий ему ключ - это перебрать всю таблицу.
Однако, возможно, я неправильно понял, и вы хотите получить определенное значение от ключа без повторения всей таблицы.
Скажем, у вас есть таблица с именем Морзе следующим образом:
morse = { a = ".-"; b = "-..."; } -- And so on
Если вы хотите, чтобы преобразовать один символ Морзе можно сделать следующим образом:
morse["a"] --Which will return the string ".-"
Вы можете сделать наоборот, и определите таблицу со всеми значениями морзе и их соответствующими буквами, как показано ниже. Обратите внимание на использование квадратных скобок, чтобы «избежать» символов.
morse = { [".-"] = "a"; ["-..."] = "b" }
morse[".-"] -- This will return "a"
извините. я забыл сказать, что мне нужно создать код Морзе, который может преобразовать английский язык в morse или morse на английский. спасибо, сэр за ответ, я попытался использовать этот подход, используя пары, я могу получить как ключ, так и значение, вот почему я продолжаю думать, как я могу получить ключ, подобный 'morse = {[".-"] = "a"}' morse = ["a"] вернет "a" вместо ".-" –
на основе your comment, я думаю, что вы ищете подстановки строк с помощью таблицы отображения. Я думаю, что вы можете использовать string.gsub
here (если ваш учитель по-прежнему настаивает на том, что .gsub
итератор, вы можете попросить их вежливо, что вы не знаете о методе они утверждают, и был бы рад на самом деле узнать о том же):
local str = "sos sos sos"
local morse = {s = "...", o = "---"}
print(str:gsub("%a", morse))
- 1. Перемещение таблицы lua в C api
- 2. Перемещение каталогов без использования рекурсии?
- 3. цикл через массивы в lua .. любой способ итерации без пар?
- 4. Таблицы внутри таблицы в lua
- 5. Перемещение UIImageView без использования свойства центра
- 6. Сортировка списка в пар без использования карты или наборы
- 7. Перемещение персонажа с помощью Lua
- 8. Клонирование таблицы Lua в API Lua C
- 9. «Бросить» адрес таблицы Lua в таблицу Lua
- 10. Сортировка таблицы [] в Lua
- 11. Дублирующие таблицы в Lua
- 12. Строка для таблицы в Lua
- 13. Выровнять таблицы без использования Float
- 14. Выбор таблицы без использования Arel
- 15. Обновление таблицы без использования курсора
- 16. Вызов функций lua из ручек использования .lua?
- 17. Ограничение использования памяти сценария Lua?
- 18. Циклическое перемещение по таблице динамически в lua
- 19. Лучший способ использования Lua
- 20. C++ Lua Получение значения из таблицы Lua
- 21. Перемещение файлов в подкаталог программно (без использования команды unix mv)
- 22. lua/love2d для использования в петле
- 23. Таблицы многострочных функций в lua
- 24. Индекс возврата таблицы в Lua
- 25. Lua странное поведение таблицы
- 26. Lua - таблицы слияния?
- 27. Lua отображение таблицы
- 28. , дезинфицирующий вход таблицы Lua
- 29. Lua утечка памяти таблицы?
- 30. Нажатие таблицы Lua
на самом деле это мое назначение, создающее код Морзе. Использование пар это можно сделать легко. но наш учитель сказал, что если мы попытаемся не использовать пары или итераторы, он даст нам лучшие оценки. я уже застрял целый день, пытаясь не использовать итераторы, но я до сих пор не нашел способ ... –
Примитивная функция для прохождения таблиц - 'next'. Без него или 'пар' (который использует' next'), нет другого пути. – lhf
да, поэтому im soo запутался в том, как перемещаться по таблице без использования функции, построенной lua ... спасибо за ответ –