Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
это ваши слова, никаких предупреждений нет, но они на самом деле есть
в каком мире вы живете, что курите, поделитесь
Т.е. вы так за меня смело утверждаете про мой код который не видите? Грибами не ошиблись?
все понял, не дурак, у вас спецкомпилятор без предупреждений, специально лично от MQ
PS: и я такой хочу, дяд дай поюзать
Приведённый Вами код - вообще не правильный!
Должно быть так:
Не правильно, потому что потом идёт сравнение:
нет, не прав.
это здесь не при чём.
Кодописатель просто перестраховался либо копипастил откудато приведение типа.
на самом деле
код
не выдает ни ошибки ни предупреждения.
явного приведения при сравнении MQL не требует
PS. Тестируйте свои предположения, перед тем как начать спорить.
очень плохой пример, вы проскочили на сравнении, а дальше нарветесь на ошибку:
PS. Тестируйте свои предположения, перед тем как начать спорить.
нет, не прав.
это здесь не при чём.
Кодописатель просто перестраховался либо копипастил откудато приведение типа.
на самом деле
код
не выдает ни ошибки ни предупреждения.
явного приведения при сравнении MQL не требует
PS. Тестируйте свои предположения, перед тем как начать спорить.
о_О!
Правильно - не правильно....
Создаётся такое впечатление, что вообще не читаете, что пишут другие!
По правилам программирования:
ПРИНИМАЮЩАЯ ПЕРЕМЕННАЯ ФУНКЦИИ ДОЛЖНА БЫТЬ ТОГО ЖЕ ТИПА ЧТО И ТИП ВОЗВРАЩАЕМОГО ЗНАЧЕНИЯ ЭТОЙ ФУНКЦИИ!
ВСЁ!
На этом измышления пора закончить.
Почему Вы не написали так:
Да потому что знаете, что функция всегда возвращает LONG
А в справке ясно написано, что для аргумента POSITION_TYPE функции PositionGetInteger() возвращаемое
значение ENUM_POSITION_TYPE, а не LONG
А если хотите поупражняться в приведении типов, то пишите так:
То, что компилятор не выдаёт ошибку - это не значит, что Вы написали правильно!
Это говорит о "вольности" компилятора и только! (позволяет сравнивать LONG и INTEGER)
В этой ситуации ПРАВИЛЬНО нужно делать так:
очень плохой пример, вы проскочили на сравнении, а дальше нарветесь на ошибку:
вы где то увидели про дальнейшее с приведением типов? не оправдывайте свои тезисы, ссылаясь на иной предмет разговора.
речь только про сравнение и только в данном случае long - enum.
Вы забрели уже в непроглядные дебри мыслей, хотя вопрос был прямой, на который ответ дал еще integer
Nextor257:
подскажите, не могу понять что за сравнение такое?
if(type==(long)POSITION_TYPE_BUY)
Зачем перед POSITION_TYPE_BUY указано (long) ?
Это изменение типа переменой на лету.
long и lоng вместо ENUM_POSITION_TYPE и ENUM_POSITION_TYPE
8 знаков (которые можно набрать с закрытыми глазами) вместо 36-ми знаков (да еще в верхнем регистре)! К тому же разнообразная информация не имеющая в себе смысла. Вот это не есть хороший стиль программирования - и лишняя писанина и лишняя информация.
В данном случае Михаил абсолютно прав (При всем моем отвращении к стилю программирования Михаила).
И дело здесь не в потенциальных предупреждениях и тем более количестве символов, а в строгой типизации. Перечисление ENUM_POSITION_TYPE - уникальный тип данных. Он не long не int а именно ENUM_POSITION_TYPE. И использовать его нужно как ENUM_POSITION_TYPE и никак иначе. А если перечисление набирать долго, то автозаполнение включается уже на третьем знаке, и это вообще ни какая не проблема. А проблема в использовании именно long, потому что он может быть практически каким угодно, а ENUM_POSITION_TYPE нет.
явного приведения при сравнении MQL не требует
Написал вначале что требует, но потом увидел слово "при сравнении". Действительно, при сравнении явного приведения не требуется, потому что MQL это делает неявно. И лучше он этого бы не делал вовсе, потому что результат зачастую бывает неопределенным. Но в других нормальных строго-типизированных языках явное приведение типов требуется вообще всегда.
P.S. В кой-то веки Михаил дал грамотный ответ, но и тут по привычке начали его гнобить. А зря, т.к. в данном случае он прав.