Arhn - архитектура программирования

Как создавать имена переменных, которые объединяются с возрастающим числом

В настоящее время я программирую сценарий Lua. Там я хотел бы иметь имя переменной, которое объединяется с увеличивающимся числом.

Пример: Q0001,Q0002,Q0003,...,Q9999

Мой следующий скрипт для этого:

local rnd = math.random (0,9999)
local Text = ""
print(rnd)
if rnd > 0 and rnd < 10 then
    --Add Nulls before Number and the "Q"
    Text = Q000 .. rnd
elseif rnd >= 10 and rnd < 100 then
    --Add Nulls before Number and the "Q"
    Text = Q00 .. rnd
elseif rnd >= 100 and rnd < 1000 then
    --Add Null before Number and the "Q"
    Text = Q0 .. rnd
elseif rnd >= 1000 then
    --Add "Q"
    Text = Q .. rnd
end
print(Text)

Логически я поместил это в функцию, потому что это только часть моей программы. Позже в программе мне нравится получать информацию с помощью переменной, потому что произведение переменной Q### представляет собой таблицу, которую я запрограммировал. Моя вторая мысль решить проблему заключалась в том, чтобы преобразовать ее в текст, но тогда я не знаю, как преобразовать ее в объявление.

Редактировать 04.04.15 19:17: Тоже сделать понятнее. Я хочу, чтобы текст стоял после конца сценария для таблицы, которую я установил ранее. Так что я могу сказать Text.Name например.

04.04.2015

Ответы:


1

Используйте string.format со спецификаторами формата padded:

Всего одна строка:

Text = ("Q%04d"):format( rnd )
-- same as Text = string.format( "Q%04d", rnd )

Вместо того, чтобы создавать так много таблиц, используйте одну таблицу с указанными выше значениями в качестве ключей/индексов:

t = {
    Q0001 = "something",
    Q0002 = "something",
    Q0013 = "something",
    Q0495 = "something",
    -- so on
}
04.04.2015
  • Или просто используйте простой массив. 04.04.2015
  • Хорошо, я погуглил функцию string.format, но там только список с аргументами. Так что я не совсем понимаю, что вы мне тут объяснили. И после того, как я протестировал ваш пример в консоли, было выдано имя Q###, но должно быть ноль, потому что я еще не объявил переменную. И я получаю следующую ошибку: 04.04.2015
  • org.luaj.vm2.LuaError: C:\...'FileName'.lua:46 ожидается индекс таблицы, получена трассировка стека таблицы: C:\...'FileName'.lua:46: в основном блоке [Java] : в ? на org.luaj.vm2.LuaValue.typerror(неизвестный источник) на org.luaj.vm2.LuaTable.set(неизвестный источник) на org.luaj.vm2.LuaClosure.execute(неизвестный источник) на org.luaj.vm2.LuaClosure .onInvoke(неизвестный источник) на org.luaj.vm2.LuaClosure.invoke(неизвестный источник) на lua.processScript(неизвестный источник) на lua.main(неизвестный источник) 04.04.2015
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..