Ошибки, баги, вопросы - страница 1332
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ваш совет бессмысленен практически. Никто специально одинаковые имена не даёт. Код локальных функций живёт своей обособленной жизнью. А внешняя программа - своей. При этом имена внешних переменных могут со временем меняться, а также добавляться новые внешние переменные. И если после этого вдруг в одной из сотни функций окажется локальная переменная с таким же именем, то что, по-вашему, надо переименовывать глобальную переменную? Не стоит искать оправдания багам разработчиков.
Я и не искал оправдание багам разработчиков, но этот баг легко обойти если при работе в проекте не использовать одинаковые имена переменных, которые отвечают за входные параметры. Просто измените имя во входных параметрах, сомневаюсь, что во входных параметрах у вас сотни переменных и нужно будет править весь код :) в точке входа ПО как правило пишется основная часть кода и она не такая уж и большая, все производится вызовами функций(методов). А функциям (методам) нет ни какой разницы какое имя переменной передается во входных параметрах функции.
Если конечно писать код в котором в функциях используются глобальные переменные, тогда конечно придется править многое, но такой код составлен абсолютно без взгляда на будущее, его действительно трудно модернизировать.
Хотя если смотреть на разработчика (MetaQuotes) потребительским взглядом, то конечно хочется много всего и сразу :) мне бы хотелось для удобства в работе, что бы терминал был кросс-платформенным, но на подобную просьбу будет ответ один - либо пользуйтесь тем что есть либо идите мимо :)
Просто измените имя во входных параметрах...
У вас какой-то легкомысленный взгляд. Вот так просто возьми и поменяй... Потом ещё какая-то функция добавится в коде, где локальная переменная совпадёт по имени, и опять менять, да? Имя внешней переменной - это вам не просто набор букв, а несёт в себе конкретный смысл. Порой приходится думать, подбирая для неё лаконичное и ёмкое имя. А вы тут говорите - менять. Да и все настройки пресетов, а также тестера и оптимизатора собьются для этого параметра при смене имени.
Поторюсь, локальный код живёт своей жизнью, и совершенно незачем подстраиваться под него. Допустим вы вставили некую функцию откуда-то извне, возможно её даже писали не вы, поэтому имена локальных переменных там могут быть абсолютно любые.
У вас какой-то легкомысленный взгляд. Вот так просто возьми и поменяй... Потом ещё какая-то функция добавится в коде, где локальная переменная совпадёт по имени, и опять менять, да? Имя внешней переменной - это вам не просто набор букв, а несёт в себе конкретный смысл. Порой приходится думать, подбирая для неё лаконичное и ёмкое имя. А вы тут говорите - менять. Да и все настройки пресетов, а также тестера и оптимизатора собьются для этого параметра при смене имени.
Поторюсь, локальный код живёт своей жизнью, и совершенно незачем подстраиваться под него. Допустим вы вставили некую функцию откуда-то извне, возможно её даже писали не вы, поэтому имена локальных переменных там могут быть абсолютно любые.
Делайте как считаете нужным, только очень похоже, что не писали вы больших проектов.
Мне нет смысла смотреть определения своих функций, т.к. я имею четкое разграничение в стилистике объявления глобальных и локальных имен переменных. Поэтому я и не сталкиваюсь с такими проблемами, как совпадение имен переменных глобального и локального уровня. Главное, что функции отрабатывают свою логику без коллизий. В Вашем случае есть одно большое НО, если у Вас совпадет имя глобальной переменной с именем локальной переменной, то ждите сюрпризов, разгребать которые Вы уже начали.
Как пример, ставьте в имя локальной переменной дополнительный знак _, например _iCount. В этом случае у Вас ни когда не будет проблем с именами переменных, т.к. будет выполняться то что вы мне пытаетесь уже второй раз зачем то объяснять - переменные живут в локальной зоне своей видимости, где были созданы. И ни какая глобальная переменная в этом случае не будет вносить неоднозначность в именах. И закроем на этом наш диспут.
Возвращаясь к своему предыдущему посту. MT4/845, Windows7/64 bit, cкрипт:
Результат:
Администрация, допишите в DoubleToString, что эта функция округляет числа с плавающей точкой до указанной точности.
По хорошему не надо называть одинаково локальные и входные переменные
По хорошему не надо называть одинаково локальные и входные переменные
Попробуйте продолжить строку в ME в прилагаемом файле без пробелов
При обсуждении какого-либо вопроса, можно давать ссылку на продукт, находящийся в Маркете? Или это будет считаться рекламой и запрещено?
Сомнительный результат компиляции после оператора ? :
Результат: 65618 (и как он такой получился?), а должна быть ошибка при компиляции