Оказывается можно назвать переменную и функцию одни и тем же именем :)
Я догадываюсь почему так: списки имен имен переменных и имен функций лежат в разных "таблицах" и "несмешиваются" ни при компиляции ни при исполнении. но - прикольный текст получается. Вот код:
компилируется - без ошибок. работает - как написано ( Print выводит единичку).
ктстати, еще смешнее, если переменной присвоить имя start:)
Пример из джавы
class start { private int start; public void start(int start) { } }
Оказывается можно назвать переменную и функцию одни и тем же именем :)
Я догадываюсь почему так: списки имен имен переменных и имен функций лежат в разных "таблицах" и "несмешиваются" ни при компиляции ни при исполнении. но - прикольный текст получается. Вот код:
компилируется - без ошибок. работает - как написано ( Print выводит единичку).
Я как MQL увидел (с пол-года назад), так это у меня сразу выяснилось - неосознанно, ясное дело.)))
Есть подозрение, что это выяснилось после прочтения справки по MQL5 ;) Дело в том, что я именно так и узнал об озвученной особенности MQL4. Потом стал пробовать еще одно описание в MQL5: можно создать две функции с одинаковым именем, но разным типом результата. Утверждается, что компилятор сам будет выбирать нужную функцию, подстраиваясь под тип данных, который участвует в выражении. Но эта "багофича" в MQL4 не работает.
нет, это результат отладки кодировщика MQLEnigma. на одном из файлов у меня во внутренней процедуре была куча обращений к переменной, которая обзывалась как и функция. я знал что к этой функции было только одно обращение (инициализация), и сперва ошалел когда увидел что у меня больше десятка обращений к ней. когда начал искать где это - смотрю а переменная и функция одинаково обозваны. из за того что сильно "далеко" по тексту были разбросаны - оно мне на глаза и не попадалось....
кстати в 5-ке точно такая же багофича :)
Есть подозрение, что это выяснилось после прочтения справки по MQL5 ;) Дело в том, что я именно так и узнал об озвученной особенности MQL4. Потом стал пробовать еще одно описание в MQL5: можно создать две функции с одинаковым именем, но разным типом результата. Утверждается, что компилятор сам будет выбирать нужную функцию, подстраиваясь под тип данных, который участвует в выражении. Но эта "багофича" в MQL4 не работает.
))) Не, я по ошибке назвал ф-ю также как и имя переменной, которой присваивал ее рез-т. Чуть ли не в первый день знакомства с языком!
Нет. Не так было. В описании ф-ии присутствовала переменная с именем самой же ф-ии. Во как! (Вот такой я разгильдяй!))) И все работало. А потом уже целенаправленно проверил описанный вариант.
Есть подозрение, что это выяснилось после прочтения справки по MQL5 ;) Дело в том, что я именно так и узнал об озвученной особенности MQL4. Потом стал пробовать еще одно описание в MQL5: можно создать две функции с одинаковым именем, но разным типом результата. Утверждается, что компилятор сам будет выбирать нужную функцию, подстраиваясь под тип данных, который участвует в выражении. Но эта "багофича" в MQL4 не работает.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Оказывается можно назвать переменную и функцию одни и тем же именем :)
Я догадываюсь почему так: списки имен имен переменных и имен функций лежат в разных "таблицах" и "несмешиваются" ни при компиляции ни при исполнении. но - прикольный текст получается. Вот код:
компилируется - без ошибок. работает - как написано ( Print выводит единичку).