Вопрос такой, как мне получить значение result?
Может, протсто return(result); ?
А зачем так сложно?
Потому что, Андрюша, он - спец по паскалю...
Или это я чего-то не понимаю? ;)
Потому что, Андрюша, он - спец по паскалю...
Или это я чего-то не понимаю? ;)
Если
Вопрос такой, как мне получить значение result?
Может, протсто return(result); ?
Я же доверяю людям если они это пишут в своих учебниках, нахрена
тогда он так написал?
return(result) слишком простым показался? Зачем этот амперсанд (&) перед result?
Вопрос такой, как мне получить значение result?
Вызывая функцию вы передаете ей три параметра. После вызова функции, result будет в перемнной, которая при вызове функции передавалась третьей по порядку.
Я же доверяю людям если они это пишут в своих учебниках, нахрена
тогда он так написал?
return(result) слишком простым показался? Зачем этот амперсанд (&)
перед result?
Зачем этот амперсанд (&) перед result?
В MQL принято, что параметры, указанные в вызове функции (в скобках) - это такие, что передаются извне в функцию и в нутри неё как-то обрабатываются. Результатом этих вычислений как правило является ОДИН параметр, который возвращает функция после окончания вычислений через return(результат).
ЕСЛИ одного параметра бывает недостаточно, а напротив, возникает необходимость вернуть несколько значений, то обычно возврщают массив. В этом случае технология предполагвет следующее:
Где-то в исходном коде (прибл. там, откуда вызывается функция) объявляется массив значений. Этот массив передаётся в функцию с префиксом &. С технической точки зрения это означает, что в функцию передаётся не копия значений переменных массива, а адрес его места жительства. Это значит, что при изменении значений элементов этого массива внутри функции, меняется значение не только соответствующих локальных переменных (элементов массива) внутри функции, но и значения "исходного" массива, переданного в функцию, объявленного (там, где объявленного) на уровень выше, т.е. не ниже, чем на уровне места вызова функции.
Иными словами - если изменить значения такого массива в функции, то меняются значения в исходном массиве.
Таким способом можно вернуть в точку вызова функции не одно значение, а более одного, а именно столько, сколько элементов содержится во всех массивах, указанных с префиксом &. Классно, правда?:)
Зачем этот амперсанд (&) перед result?
В MQL принято, что параметры, указанные в вызове функции (в скобках) - это такие, что передаются извне в функцию и в нутри неё как-то обрабатываются. Результатом этих вычислений как правило является ОДИН параметр, который возвращает функция после окончания вычислений через return(результат).
ЕСЛИ одного параметра бывает недостаточно, а напротив, возникает необходимость вернуть несколько значений, то обычно возврщают массив. В этом случае технология предполагвет следующее:
Где-то в исходном коде (прибл. там, откуда вызывается функция) объявляется массив значений. Этот массив передаётся в функцию с префиксом &. С технической точки зрения это означает, что в функцию передаётся не копия значений переменных массива, а адрес его места жительства. Это значит, что при изменении значений элементов этого массива внутри функции, меняется значение не только соответствующих локальных переменных (элементов массива) внутри функции, но и значения "исходного" массива, переданного в функцию, объявленного (там, где объявленного) на уровень выше, т.е. не ниже, чем на уровне места вызова функции.
Иными словами - если изменить значения такого массива в функции, то меняются значения в исходном массиве.
Таким способом можно вернуть в точку вызова функции не одно значение, а более одного, а именно столько, сколько элементов содержится во всех массивах, указанных с префиксом &. Классно, правда?:)
В MQL принято, что...
масса идей, что и как ему бы еще сделать.
Если собрать ответы SK. и другие подобные ответы на вопросы форумян, то получится хорошее приложение к учебнику,
своеобразный FAQ. Достоинство его состоит в том, что реальные вопросы отражают типичные пробелы в знаниях, оставшиеся
после первого "подхода к литературе".
Спасибо, запутал еще больше :). Если бы я мог полностью понять то что ты написал, я бы не задавал этот вопрос :).
Я вот и спрашиваю как вернуть мне этот result, мне надо получить это значение в переменную.
bool GetItem(string array, int index, double &result)
Внутри функции вычисляется нужный мне параметр и возвращается в 3-ью переменную (&result).
Вопрос как получить значение &result?
Так чтобы я мог написать.
double Result_GetItem=... (и присвоить переменной значение &result).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, уважаемые!
Помогите чайнику.
Есть функция
//+----------------------------------------------------------------------------------------+
//|Функция GetItem()
//|Возвращает true, если не было ошибки, и false, если ошибка была
//|В третьем параметре функции возвращается элемент массива с индексом index
//|Параметры:
//|array - имя массива
//|item - элемент массива
//|result - элемент массива с индексом index
//|
//+----------------------------------------------------------------------------------------+
bool GetItem(string array, int index, double &result)
Функция возвращает нужное мне значение result в 3-ий параметр себя самой.
Обычно функция возвращает результат работы, т.е по идее она должна возвращать result, но она возвращает нужный мне result в
3-ий параметр себя самой.
Вопрос такой, как мне получить значение result?