Доброго времени суток!
Читаю на досуге expert.mqh, не подскажет ли кто, что это за синтаксис такой интересный?
int digits_adjust=(m_symbol.Digits()==3 || m_symbol.Digits()==5) ? 10 : 1;
Спасибо!
- ru.wikipedia.org
Доброго времени суток!
Читаю на досуге expert.mqh, не подскажет ли кто, что это за синтаксис такой интересный?
int digits_adjust=(m_symbol.Digits()==3 || m_symbol.Digits()==5) ? 10 : 1;
Спасибо!
Дополнительный множитель унифицирующий инпут параметр в зависимости от 4-х или 5-ти значных котировок.
Я в таком случае делаю так:
(m_symbol.Digits()%2==0?1:10)
если же вы спрашиваете о ?: то курите мануал, это упрощённый аналог if(){}else{}, с возможностью вызова прямо в выражении.
Справочник MQL5 / Основы языка / Операторы / Условный оператор ?:
- www.mql5.com
Дополнительный множитель унифицирующий инпут параметр в зависимости от 4-х или 5-ти значных котировок.
Я в таком случае делаю так:
если же вы спрашиваете о ?: то курите мануал, это упрощённый аналог if(){}else{}, с возможностью вызова прямо в выражении.
Справочник MQL5 / Основы языка / Операторы / Условный оператор ?:
На мой взгляд, использование "вопросика" - приносит больше проблем, чем пользы. Именно из-за его возможности вызова прямо в выражении.
Меня всегда удивляли "задачки" в виде строки с огромным числом разнообразных элементов, которые, безусловно, имеют программерский смысл, но до которого докопаться можно только спустя полчаса кропотливого разбора.
Наоборот, синтаксис программы должен быть как можно проще и понятнее. Всевозможных "ухищрений" с вопросиками, с кучей разнообразных скобок и звездочек - должно быть поменьше.
На мой взгляд, использование "вопросика" - приносит больше проблем, чем пользы. Именно из-за его возможности вызова прямо в выражении.
Меня всегда удивляли "задачки" в виде строки с огромным числом разнообразных элементов, которые, безусловно, имеют программерский смысл, но до которого докопаться можно только спустя полчаса кропотливого разбора.
Наоборот, синтаксис программы должен быть как можно проще и понятнее. Всевозможных "ухищрений" с вопросиками, с кучей разнообразных скобок и звездочек - должно быть поменьше.
ns_k:
Спорное утверждение. Иногда в использовании, например, операции >> есть и чисто практический смысл, она выполняется гораздо быстрее, чем деление на 2
Это не противоречит моему утверждению. Глядеть надо по ситуации.
Действительно, в "узких местах", там где циклы крутятся миллионы раз, где каждый лишний машинный такт вполне ощутимо меняет продолжительность работы - для целых чисел следует применять операцию сдвига, а не деление на степень двойки.
Но "пихать" сдвиг ВЕЗДЕ, даже там, где код исполняется один раз в сутки - считаю нецелесообразным, именно из-за того, что воспринять значение операции сдвига сложнее, чем операции деления на 2.
Я не могу стопроцентно утверждать за MQL, но в MSVC - машинный код, генерируемый "вопросиком" и соответствующей конструкцией "if" - в простых случаях одинаков. За сложные случаи (вот, типа использования внутри выражения) - поручиться не могу, не проверял. Поэтому - в этих случаях, необходимо, действительно, глядеть по ситуации - что важнее - то ли прирост эффективности, то ли сохранение понятности.
Это не противоречит моему утверждению. Глядеть надо по ситуации.
Действительно, в "узких местах", там где циклы крутятся миллионы раз, где каждый лишний машинный такт вполне ощутимо меняет продолжительность работы - для целых чисел следует применять операцию сдвига, а не деление на степень двойки.
Но "пихать" сдвиг ВЕЗДЕ, даже там, где код исполняется один раз в сутки - считаю нецелесообразным, именно из-за того, что воспринять значение операции сдвига сложнее, чем операции деления на 2.
Я не могу стопроцентно утверждать за MQL, но в MSVC - машинный код, генерируемый "вопросиком" и соответствующей конструкцией "if" - в простых случаях одинаков. За сложные случаи (вот, типа использования внутри выражения) - поручиться не могу, не проверял. Поэтому - в этих случаях, необходимо, действительно, глядеть по ситуации - что важнее - то ли прирост эффективности, то ли сохранение понятности.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Читаю на досуге expert.mqh, не подскажет ли кто, что это за синтаксис такой интересный?
int digits_adjust=(m_symbol.Digits()==3 || m_symbol.Digits()==5) ? 10 : 1;
Спасибо!