Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
return только завершает работу функции, но никакого значения функции не передаёт. И то что вы думаете, что вернуть может в функцию что угодно, это только кажется, так как в функции внутри старта может оставаться ранее переданное ей значение, если кроме оператора return в ней используется оператор return(x), который ранее ей передал результаты каких нибудь вычислений.
Не собираюсь вас ни в чем переубеждать. Я придерживаюсь мнения TheXpert. Вам желаю удачи в отлове багов.
sergeev:
...
// с чего вам пришла идея, что у функции есть память? это ж не переменная
...
Если бы функция не имела памяти, то она не могла бы принять какое либо значение от оператора return(x) и мы не могли бы передать из неё ничего какой либо другой переменной или тому же оператору Print() . В решете воду не унесёшь.) Функция это тоже особым образом оформленная переменная, которая объединена с подпрограммой для вычисления значения этой переменной. Исключением является функция типа void, ей ничего не передаётся и в ней ничего не хранится.
Юрий, у вас с логикой все в порядке?
скажите, куда сохранился невыданный результат функции F1 ?
и почему он меняется каждый раз?
Юрий, у вас с логикой все в порядке?
скажите, куда сохранился невыданный результат функции F1 ?
и почему он меняется каждый раз?
Разобрался окончательно. Сделал новый тест и выяснил, что я был не прав, когда написал, что значение функции сохраняется внутри функции старт до выхода из неё. Правильным ответом будет: функция сохраняет своё значение от момента её исполнения до момента вызова какой либо другой функции внутри функции старт. А это значит, что для всех функций существует общий буфер, где временно хранятся значения функций на этом интервале времени.
В связи с этим моё высказывание, что функция хранит своё значение как локальная переменная, также неправильное. Однако всё это не опровергает моё высказывание, что return(0) возвращает ноль, а return ничего не возвращает, из-за которого появились разногласия с Сергеевым. Для подтверждения моих вышеприведённых утверждений привожу два теста и их результаты.
Тест 1.
Результат теста:
2014.01.08 15:29:20 2013.01.01 23:00 Pustoy1 EURUSD,H1: F2(0)=77
2014.01.08 15:29:20 2013.01.01 23:00 Pustoy1 EURUSD,H1: F2(1)=77
Тест 2
между двумя вызовами одной и той же функции F2() помещаем вызов функции F1()
результат:
2014.01.08 15:36:48 2013.01.01 23:00 Pustoy1 EURUSD,H1: F2(0)=33
2014.01.08 15:36:48 2013.01.01 23:00 Pustoy1 EURUSD,H1: F1()=33
2014.01.08 15:36:48 2013.01.01 23:00 Pustoy1 EURUSD,H1: F2(1)=77
Как видим в этом случае при повторном вызове функции F2() мы имеем значение функции F1() переданное ей в буфер.
Таким образом считаю, что вопрос решён окончательно. Спасибо всем принявшим участие в его обсуждении.
Разобрался окончательно. Сделал новый тест и выяснил, что я был не прав, когда написал, что значение функции сохраняется внутри функции старт до выхода из неё. Правильным ответом будет: функция сохраняет своё значения от момента её исполнения до момента вызова какой либо другой функции внутри функции старт. А это значит, что для всех функций существует общий буфер, где временно хранятся значения функций на этом интервале времени.
...ну вот - это уже "ближе к телу".
В связи с этим моё высказывание, что функция хранит своё значение как локальная переменная, также неправильное. Однако всё это не опровергает моё высказывание, что return(0) возвращает ноль, а return ничего не возвращает, из-за которого появились разногласия с Сергеевым.
А теперь возвратимся к истоку . Я считаю, что ваш пост "не по делу" (человек, которому оно адресовано, вас, вряд ли, поймёт без дополнительных объяснений о возвращении функциями каких-то значений)!!! - хотя "по сути" для частного случая утверждение может быть правильным. Не забывайте, что ещё кто-то следит за контекстом ведущегося разговора. :)
...ну вот - это уже "ближе к телу".
... Не забывайте, что ещё кто-то следит за контекстом ведущегося разговора. :)
Юрий, Вы эксперементируете с недокументированными возможностями. В нормальном компиляторе этот код невозможен!
Правильный программист игнорирует недокументированные возможности. Ибо, они могут в любой момент измениться. Ранее работавший код перестанет работать.
Юрий, Вы эксперементируете с недокументированными возможностями. В нормальном компиляторе этот код невозможен!
Правильный программист игнорирует недокументированные возможности. Ибо, они могут в любой момент измениться. Ранее работавший код перестанет работать.