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

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

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

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

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

6 ответов

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

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

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

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

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

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

Например:

#include <map>
#include <string>

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

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

}

Std:: map - это ассоциативный контейнер, который отображает один std::string на другого.

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам