Я хочу научиться добавлять пробелы в именах переменных.
Я знаю, что многие языки мешают мне сделать это, но я считаю, что есть хитрость, потому что я видел, как кто-то делал это в MQL5
Терминал MetaTrader позволяет отображать панель интерфейса пользователя для значений параметров с помощью MMI для input
а также extern
переменные объявлены в { Expert Advisor
| Technical Indicator
| Script
} код, во время запуска выполнения кода.
(См. Рисунок ниже): .
Если вы действительно хотите быть злым, вы можете использовать знак слева направо, 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;
Пожалуйста, не делайте этого вне шуток и шуток первоапрельских праздников.
В 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 которая должна иметь более высокую производительность, но не будет сохранять ключи отсортированными и может потреблять больше памяти.
Насколько я знаю, нет никакой возможности добавить пробелы в имя переменной.
Проблема с использованием пробелов в именах (будь то имена файлов, имена переменных или что-то еще) заключается в том, что вам нужен какой-то другой механизм для определения того, что является частью этого имени и что является частью следующего раздела кода. Ваш образец выглядит как форма, поэтому он имеет свое собственное форматирование и структуру.
SQL позволяет вам «заключать в кавычки» имена переменных [name with space]
или с кавычками `name with space`
,
Большинство других языков не допускают пробелов в именах переменных, потому что любое пробел считается пробелом для другой лексической единицы [другое имя / слово / переменная]. Вы не можете изменить это, так как это изменило бы значение «нормального кода». Большинство языков позволяют / используют _
как символ «пробел в именах».
Конечно, если у вас есть «переменные», которые являются вашей собственной конструкцией, например, для чтения из базы данных или файла, вы можете использовать свой собственный синтаксис и использовать, например, std::map<std::string, sometype>
или же std::unordered_map<std::string, sometype>
связать строку из ваших данных с соответствующим значением.
Пробелы (пробелы) используются в C ++ для изоляции ключевых слов и имен переменных, поэтому они не могут существовать в имени переменной, иначе компилятор будет обрабатывать текст как несколько идентификаторов.
Пример — действительный: static const unsigned int my_variable = 6U;
Если между пробелом my
а также variable
как компилятор узнает, какое имя переменной? Если здесь две переменные, это не имеет смысла.
Также, как вы можете видеть, в выражении может быть несколько ключевых слов.
Я нахожу решение.
В Mql5, когда вы добавляете комментарий рядом с именем переменной, он появляется вместо имени переменной.
Смотрите это изображение: http://prntscr.com/79vaae