Как поставить пробелы в именах переменных?
Я хочу научиться добавлять пробелы в именах переменных.
Я знаю, что многие языки мешают мне сделать это, но я считаю, что есть хитрость, потому что я видел, как кто-то делал это в MQL5
Терминал MetaTrader позволяет отображать панель UI-Dialogue для значений настроек с помощью MMI для input
а также extern
переменные объявлены в { Expert Advisor
| Technical Indicator
| Script
} код, во время запуска выполнения кода.
(См. Рисунок ниже): input code> и
extern code> в {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>
связать строку из ваших данных с соответствующим значением.