Случайно обнаружил, что в функции StringConcatenate() строковые параметры не обязательно разделять запятыми, для этого можно использовать пробел или написать строковые параметры слитно. Строка, которая будет сформирована в результате конкатенации таких параметров от этого не изменится.
Ниже приведен код, который компилируется без ошибок
И что же распечаталось?? Пустая строка? Ведь функция используется так
string name = "тест: "; string result = StringConcatenate(name, "КАЗНИТЬ" "-" "НЕЛЬЗЯ" "-" "ПОМИЛОВАТЬ", "!"); Print(result);
Забыл, как из вкладки эксперты правильно скопировать, чтобы не было таких кракозябр?
2016.02.08 12:35:52.809 sss EURUSD.e,M1: òåñò: ÊÀÇÍÈÒÜ-ÍÅËÜÇß-ÏÎÌÈËÎÂÀÒÜ!
В журнале оказалась ожидаемая строка, так как будто бы в исходном коде был корректный вызов функции StringConcatenate(), т.е.
string name = "тест: "; string result = StringConcatenate(name, "КАЗНИТЬ" "-" "НЕЛЬЗЯ" "-" "ПОМИЛОВАТЬ", "!"); Print(result);
Alexey Volchanskiy: Ведь функция используется так
Нет, не так, Вы привели пример на MQL4, я же обнаружил эту особенность в MQL5, там эта функция вызывается по-другому, в MQL4 не проверял.
И что же распечаталось?? Пустая строка? Ведь функция используется так
Забыл, как из вкладки эксперты правильно скопировать, чтобы не было таких кракозябр?
2016.02.08 12:35:52.809 sss EURUSD.e,M1: òåñò: ÊÀÇÍÈÒÜ-ÍÅËÜÇß-ÏÎÌÈËÎÂÀÒÜ!
в справочнике по MQL5 сказано, что аргументами функции StringConcatenate() являются:
[in] Любые значения, разделенные запятыми. От 2 до 63 параметров любого простого типа.
В примере используются 6 строковых аргументов, так что должно быть не 2, а 6 запятых.
string name; StringConcatenate(name, "КАЗНИТЬ", "-", "НЕЛЬЗЯ", "-", "ПОМИЛОВАТЬ", "!");
Случайно обнаружил, что в функции StringConcatenate() строковые параметры не обязательно разделять запятыми, для этого можно использовать пробел или написать строковые параметры слитно. Строка, которая будет сформирована в результате конкатенации таких параметров от этого не изменится.
Ниже приведен код, который компилируется без ошибок
В справке это поведение явно описано
Длинные константные строки для удобства чтения исходного кода можно разбивать на части без операции сложения. Эти части при компиляции автоматически соберутся в одну длинную строку:
в справочнике по MQL5 сказано, что аргументами функции StringConcatenate() являются:
[in] Любые значения, разделенные запятыми. От 2 до 63 параметров любого простого типа.
Так что получается, что должно быть не 2, а 6 запятых
Должно быть не меньше одной запятой
одно значение может быть один знак, другое может быть сто знаков
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Случайно обнаружил, что в функции StringConcatenate() строковые параметры не обязательно разделять запятыми, для этого можно использовать пробел или написать строковые параметры слитно. Строка, которая будет сформирована в результате конкатенации таких параметров от этого не изменится.
Ниже приведен код, который компилируется без ошибок