Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Объясните новичку, что значит ключевое слово Возврат

Объясните новичку, что значит ключевое слово Возврат
Я
   Eva_J
 
11.05.19 - 12:52
Почему в конце некоторых процедур или функций есть возврат, в некоторых нет. В чем различие?
 
 
   user-ok
 
1 - 11.05.19 - 12:54
Мужыг, Ева, ты прогулял семестр и пытаешься наверстать?
   vde69
 
2 - 11.05.19 - 12:55
"Возврат" - это окончание выполнения процедуры/функции, то есть это выход из нее, код после этого оператора не выполняется...
   mistеr
 
3 - 11.05.19 - 13:08
(2) + Также возврат значения из функции (поэтому в конце).
   fisher
 
4 - 11.05.19 - 16:11
Для процедур это необязательное ключевое слово, производящее "досрочное" завершение работы процедуры. Поэтому возврат в конце процедуры смысла не имеет. Функции же умеют возвращать значения таким образом, что функции можно использовать в выражениях. Для этого используется ключевое слово Возврат с обязательным указанием возвращаемого значения. Можно ничего не возвращать, тогда функция вернет Неопределено. Но это плохой стиль. Функции создают как раз для того, чтобы они что-то возвращали (в противном случае создают процедуру). Поэтому чаще всего в конце функции присутствует ключевое слово Возврат (естественно, могут быть и "досрочные" возвраты).
Вообще, разделение на процедуры и функции довольно формальное - для удобства. В ряде языков разделения нет - есть только функции.
   Кодер
 
5 - 11.05.19 - 16:24
А что, так можно было - вместо Ctrl+F1 попросить вас разжевать первый том тов. Кнута???
   fisher
 
6 - 11.05.19 - 16:25
Не завидуй
   Лефмихалыч
 
7 - 11.05.19 - 19:25
этот метод возвращает дебиторскую задолженность
   Лефмихалыч
 
8 - 11.05.19 - 19:26
а, если написать наоборот, то - кредиторскую
   Провинциальный 1сник
 
9 - 11.05.19 - 21:23
(4) "Вообще, разделение на процедуры и функции довольно формальное - для удобства. В ряде языков разделения нет - есть только функции."
Вообще-то, разделение не формальное, а концептуальное. При хорошем стиле программирования функции не имеют права на побочные эффекты, а для процедуры побочный эффект - главная задача. Использование строгих функций без побочных эффектов облегчает работу компилятора и создает верифицируемый код. К СОЖАЛЕНИЮ, во многих (практически во всех) языках это различие стерто, и по сути процедура - всего лишь функция не возвращающая значение.
   Garykom
 
10 - 11.05.19 - 21:55
Процедура это Функция которая не умеет возвращать значения.

Во многих ЯП нет процедур, есть только функции, причем в некоторых количество возвращаемых значений может быть любым от 0 до сколько надо.
 
 Рекламное место пустует
   Провинциальный 1сник
 
11 - 11.05.19 - 22:12
(10) В том же 1с можно легко возвращать несколько значений - через структуру или именованный список.
   Провинциальный 1сник
 
12 - 11.05.19 - 22:12
+(11) И это, кстати, намного красивее и удобнее, чем менять параметры..
   Garykom
 
13 - 11.05.19 - 22:20
(11) Лишние действия по заталкиванию в структуру и извлечению.

(12) Типы возвращаемых значений и их наличие в структуре не контролируются автоматом
   Провинциальный 1сник
 
14 - 11.05.19 - 22:24
(13) Лишние, зато отладка одно удовольствие. А типы и в параметрах не контролируются, если мы про 1с.
   Garykom
 
15 - 11.05.19 - 22:32
(14) Для меня удовольствие когда отладка не нужна, ибо синтаксис не дает допускать глупые ошибки типа повторного использования переменных с записью значений других типов и т.д.

Количество говнокода меньше, хотя согласен что печатать больше ибо еще типы надо указывать.

Но сча интеллесенсе (подстрочные подсказки по первым буквам) есть в любых практически ide и даже умных редакторах, так то не сильно тормозит ваяние.
   Провинциальный 1сник
 
16 - 11.05.19 - 22:34
(15) Кроме удобства отладки четкое разделение входа и выхода (без модификации параметров) облегчает заимствование функций для других проектов. Потому что если ты знаешь что функция "чистая" - то тебе не надо думать ни о чем, кроме как о её вызове. Синус же не портит данные в базе.
   Garykom
 
17 - 11.05.19 - 22:36
(16) Прикольно что в голанге все параметры в функциях передаются по значению а не по ссылке по умолчанию.
Это отличие от 1С и множества прочих ЯП, тут если про это помнишь тоже кол-во ошибок и отладки минимально.
   andrewalexk
 
18 - 11.05.19 - 23:51
(4) :) в смысле необязательное? у тебя где-то в процедуре не отрабатывает возврат? и ты молчал?

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует