Как поставить пробелы в именах переменных?

Я хочу научиться добавлять пробелы в именах переменных.

Я знаю, что многие языки мешают мне сделать это, но я считаю, что есть хитрость, потому что я видел, как кто-то делал это в MQL5

Терминал MetaTrader позволяет отображать панель интерфейса пользователя для значений параметров с помощью MMI для input а также extern переменные объявлены в { Expert Advisor | Technical Indicator | Script } код, во время запуска выполнения кода.

(См. Рисунок ниже): Панель диалога MetaTrader Termina для установки значений для & lt; code & gt; input & lt; / code & gt; и & lt; code & gt; extern & lt; / code & gt; переменные на {советник | Технический индикатор | Script} запуск выполнения кода.

0

Решение

Если вы действительно хотите быть злым, вы можете использовать знак слева направо, U + 200E который выглядит как обычное пространство, но обычно не считается пробелом. Различные языки и / или конкретные платформы могут вести себя по-разному.

Этот трюк похоже на работу в C # и, видимо, вы можете сделать похожие вещи в рубине.

Я попробовал это, используя g ++, и, к счастью, это не допустимо для всех:

foo.cc:5:10: error: non-ASCII characters are not allowed outside of literals and identifiers
int a<U+200E> b = 3;

Пожалуйста, не делайте этого вне шуток и шуток первоапрельских праздников.

2

Другие решения

В C++ Вы не можете поставить пробелы в именах переменных, но вы можете получить то, что вы хотите, используя станд :: Карта.

Например:

#include <map>
#include <string>

int main()
{
std::map<std::string, std::string> vars;

vars["Time Frame"] = "15 minutes";
vars["Indicator Period"] = "16";
// ... etc

}

станд :: Карта является ассоциативный контейнер который отображает один std::string на другого.

В зависимости от того, как вы собираетесь использовать карта Вы также можете рассмотреть возможность использования станд :: unordered_map которая должна иметь более высокую производительность, но не будет сохранять ключи отсортированными и может потреблять больше памяти.

2

Насколько я знаю, нет никакой возможности добавить пробелы в имя переменной.

1

Проблема с использованием пробелов в именах (будь то имена файлов, имена переменных или что-то еще) заключается в том, что вам нужен какой-то другой механизм для определения того, что является частью этого имени и что является частью следующего раздела кода. Ваш образец выглядит как форма, поэтому он имеет свое собственное форматирование и структуру.

SQL позволяет вам «заключать в кавычки» имена переменных [name with space] или с кавычками `name with space`,

Большинство других языков не допускают пробелов в именах переменных, потому что любое пробел считается пробелом для другой лексической единицы [другое имя / слово / переменная]. Вы не можете изменить это, так как это изменило бы значение «нормального кода». Большинство языков позволяют / используют _ как символ «пробел в именах».

Конечно, если у вас есть «переменные», которые являются вашей собственной конструкцией, например, для чтения из базы данных или файла, вы можете использовать свой собственный синтаксис и использовать, например, std::map<std::string, sometype> или же std::unordered_map<std::string, sometype> связать строку из ваших данных с соответствующим значением.

1

Пробелы (пробелы) используются в C ++ для изоляции ключевых слов и имен переменных, поэтому они не могут существовать в имени переменной, иначе компилятор будет обрабатывать текст как несколько идентификаторов.

Пример — действительный: static const unsigned int my_variable = 6U;

Если между пробелом my а также variable как компилятор узнает, какое имя переменной? Если здесь две переменные, это не имеет смысла.

Также, как вы можете видеть, в выражении может быть несколько ключевых слов.

1

Я нахожу решение.
В Mql5, когда вы добавляете комментарий рядом с именем переменной, он появляется вместо имени переменной.
Смотрите это изображение: http://prntscr.com/79vaae

1
По вопросам рекламы [email protected]