Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lua
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Skaysh
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 3
1

Можно ли в lua соединять названия переменных?

19.05.2015, 18:35. Просмотров 1206. Ответов 12
Метки нет (Все метки)

Не в смысле a..b при a='Hello ' и b='World', с выводом print('a..b') — Hello World, а в том смысле, возможности соединять не значения, а названия переменных. Пример: переменные a и b (при соединении) создадут новую переменную — ab

Было бы удобно при обработке массивов и генерации аргументов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2015, 18:35
Ответы с готовыми решениями:

Как получить значения переменных Lua Script в коде программы?
Здравствуйте, мне необходимо изучить и написать небольшую программу с...

Можно ли сделать ОС для компьютера на lua?
Можно ли сделать свою ОС для компьютера на lua. Желательно без использования...

Можно ли на lua открыть интернет страницу?
Мне нужно отправить себе на почту письмо в определенный момент времени, письмо...

Можно ли писать игры используя ТОЛЬКО lua?
Нубский вопрос конечно-же, но, предположим что у меня есть движок со уже...

Можно ли в LUA вставлять функцию в функцию ?
Можно ли в LUA вставлять функцию в функцию или это не правильно ? Пример: ...

12
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
20.05.2015, 17:09 2
Что-то я не очень понимаю, как это можно использовать.
Пример желаемого кода?
0
Catstail
Модератор
23602 / 11703 / 2046
Регистрация: 12.02.2012
Сообщений: 19,088
20.05.2015, 17:45 3
Цитата Сообщение от NoMasters Посмотреть сообщение
Пример желаемого кода?
- вот и я думаю...

Цитата Сообщение от Skaysh Посмотреть сообщение
Пример: переменные a и b (при соединении) создадут новую переменную — ab
- а кто мешает создать ab сразу?
0
Skaysh
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 3
20.05.2015, 21:51  [ТС] 4
Желаемый код прямо так не пропишу, ибо присутствует синтаксис движка. Идея состоит в том что- бы вместо мучительной однотипной прописи переменных со встречающимися словами, создать цикл, который соединял бы эти "теги" (с условием). Было бы более красиво. Я понимаю, можно создать таблицу т.д и т.п, но не всегда это удобно, с методами тот же принцип, если конечно ООП не устраивает.

Добавлено через 4 минуты
Дело не совсем в этом, мне не нужно именно ab, если у вас этих ab куча.. ab1 ab2 ab3... и т.д, а если переменных нужно соединить не две а более? все прописывать? века не хватит.
0
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
20.05.2015, 22:02 5
Всё равно ничего не понятно.
Вы не руками вводите имена изначальных переменных, так?
Скорее всего они у вас есть где-то в таблице или вроде того в виде строк. В таком случае и клеить надо эти самые строки, а обращаться к значениям по индексам таблиц, в которых они живут. Если что, глобальные переменные тоже находятся в соответствующей таблице _G.
0
Skaysh
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 3
21.05.2015, 09:35  [ТС] 6
Это то итак ясно, я спрашивал синтаксис, как это прописать? строки я знаю, можно соединить с помощью двух точек (..) , пытался "скрепить" так переменные таблиц, ничего из этого не вышло, в лучшем случае соединял значения этих переменных. Если не сложно, можете прописать синтаксис соединения имен переменных?

P.S Изначальные имена находятся в массиве/таблице, имена - фрагменты переменных
0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
21.05.2015, 14:00 7
Цитата Сообщение от Skaysh Посмотреть сообщение
Если не сложно, можете прописать синтаксис соединения имен переменных?
Тебе писали про то, как надо правильно писать программу, а не про то, как склеивать имена переменных. Думается, ни в одном вменяемом языке программирования такого действия нет
1
NoMasters
21.05.2015, 16:17
  #8

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение
Думается, ни в одном вменяемом языке программирования такого действия нет
По-моему в php так можно. С другой стороны, я бы не сказал, что это вменяемый язык.

0
Evg
21.05.2015, 16:26
  #9

Не по теме:

Цитата Сообщение от NoMasters Посмотреть сообщение
По-моему в php так можно
А можешь привести пример? Чтоб хоть понимать, что в природе существует и как выглядит

0
Catstail
Модератор
23602 / 11703 / 2046
Регистрация: 12.02.2012
Сообщений: 19,088
21.05.2015, 19:14 10
Если проблема в том, что есть много переменных с "почти одинаковыми" именами, и не хочется их переписывать, то для этой ситуации придуманы массивы:

Код
    X=a1+a2+a3+a4+a5+a6+...+a100
а с помощью массива:

Код
    for i=1 to 100
        X=X+a(i)
    next
В интерпретируемых языках возможна вот такая конструкция:

Код
    expr="a1+a2+a3/a4"
    r=eval(expr)
Что-то в этом роде возможно и в php (который, вне всякого сомнения, есть вменяемый язык).

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

"Если что-то упорно не получается, посмотри, не лезешь ли ты в форточку, когда рядом открытая дверь"
1
NoMasters
21.05.2015, 19:52
  #11

Не по теме:

Evg, я ошибся, всё-таки получить имя переменной простым образом там нельзя. Зато есть специальный синтаксис для использования имён, собранных из строк:

PHP
1
2
3
4
5
6
7
$suffix = 'a';
//это будет переменная с именем var_a
${'var_' . $suffix} = 1;
$var_a++;
//как вариант к ней можно обратиться через такое волшебное выражение
$name = 'var_a';
echo $$name;

0
Evg
Эксперт CАвтор FAQ
19288 / 7147 / 528
Регистрация: 30.03.2009
Сообщений: 19,997
Записей в блоге: 30
21.05.2015, 20:41 12

Не по теме:

Цитата Сообщение от NoMasters Посмотреть сообщение
Evg, я ошибся, всё-таки получить имя переменной простым образом там нельзя
Да, это немного не то. Это конструирование имени переменной из значения, но не из имени переменной



Цитата Сообщение от Catstail Посмотреть сообщение
"Если что-то упорно не получается, посмотри, не лезешь ли ты в форточку, когда рядом открытая дверь"
Жирный-прежирный +1, который очень и очень важно усвоить начинающему
1
BozKurt
297 / 274 / 101
Регистрация: 06.05.2014
Сообщений: 861
Завершенные тесты: 1
28.05.2015, 11:57 13
Несколько раз перечитал пост, но так и не понял для чего и как, поэтому попробую ответить на вопрос, который я для себя выделил: как создать переменную из строки?
Если у тебя список готовых имён имеется на этапе выполнения, то ничего не получится, т.к. при выполнении среда ничего не знает об имени переменных, по сути это только упрощение для пользователя в IDE, чтобы знать какую переменную где использовать.
Если тебе нужно из строки получить переменную до компиляции, то используй сахар Lua:
Код
a = "1"
--/ _G.a == _G["a"]
b = "2"
_G["a".."b"] = a..b
print (ab) --/ "12"
Но здесь тебе нужно знать имена уже существующих переменных.
Если эти имена переменных хранятся у тебя в других переменных, то можно и так:
Код
varible1 = "a"
varible2 = "b"
_G[varible1..varible2] = "some value"
print (ab)
0
28.05.2015, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2015, 11:57

Можно ли заставить Матлаб подсказывать мне названия переменных?
Здравствуйте. Скажите пожалуйста - можно ли как-то заставить(научить) матлаб...

Какой программой можно получить названия и значения переменных отлаживаемого приложения?
Подскажите, с помощью какой программы можно получить названия и значения...

Скрытые названия переменных
Установил в августе Visual Studio-2013 (Ultimate). Язык C# работает прекрасно,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru