Интересно, а что Вы хотели увидеть в результате вызова?
Func("String");
Напомню что строки в MQL5 передаются по ссылке. Но дело в том, что оперативная память под строковые константы типа "String" не выделяется, эта строка хранится прямо в теле скомпилированного советника (в Вашем случае скрипта). Т.е. нет адреса в оперативной памяти, который можно было бы передать.
Поэтому вас предупредили, что конвертация string->int будет некорректной. В остальных случаях оперативная память выделяется в явном виде и преобразование типов происходит успешно!
Интересно, а что Вы хотели увидеть в результате вызова?
Напомню что строки в MQL5 передаются по ссылке. Но дело в том, что оперативная память под строковые константы типа "String" не выделяется, эта строка хранится прямо в теле скомпилированного советника (в Вашем случае скрипта). Т.е. нет адреса в оперативной памяти, который можно было бы передать.
Поэтому вас предупредили, что конвертация string->int будет некорректной. В остальных случаях оперативная память выделяется в явном виде и преобразование типов происходит успешно!
Компилятор должен быть последователен и предупреждать либо во всех аналогичных случаях, либо ни в каких. Вот это и хотел увидеть автор оригинального сообщения.
Компилятор должен быть последователен и предупреждать либо во всех аналогичных случаях, либо ни в каких. Вот это и хотел увидеть автор оригинального сообщения.
Автор просто приложил тесткейс. ;-) Func("String") - единственный случай, отработавший штатно.
А компилятор должен не "либо, либо", а обязательно предупреждать во всех случаях. При желании можно конечно сделать опциональное отключение каждого типа предупреждений, но пока этого нет, должно выводиться все.
![Документация по MQL5: Основы языка / Функции / Передача параметров Документация по MQL5: Основы языка / Функции / Передача параметров](/i/community/logo_mql5_small.png)
- www.mql5.com
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Просветите, плиз, почему предупреждение о неявном преобразовании строки в число выдается только для литерала, а переменные конвертятся молча? Час убил на то, чтобы найти описку в коде.
Пример: