|
v8: Методический вопрос по передаче параметров в функцию и их возврат. |
☑ |
0
Doomer
06.09.11
✎
09:11
|
Всего мнений: 9
Часто встречаю в типовых такой код:
Перем а;
ЗаполнитьЗначение(а);
Б=а[0];
Я же привык к такому коду:
а=ЗаполнитьЗначение();
Б=а[0];
Т.е. в типовых часто в процедуру передают переменную с которой идет работа внутри этой процедуры. По окончании работы процедуры используется изменная переменная.
Я же привык (по моему так и учили) что нужно стремиться чтобы функции и процедуры были автономны и для возврата параметра лучше использовать функции.
Так как правильно?
|
|
16
Jolly Roger
06.09.11
✎
09:24
|
точнее, должно быть так:
Перем а;
а = новый НужныйОбъект;
ЗаполнитьЗначение(а);
Б=а[0];
Правильный вариант №1 |
|
17
Тихий омут
06.09.11
✎
09:28
|
имхо, сложившееся за 18 лет программирования:
1. если функция проста и однозначна (типа математических синусов и проч.) - она должна возвращать результат своей работы - значение, полученное в результате вычислений
2. если функция сложнее простой арифметики - она должна возвращать код результата (ошибка или всё ок), в вот результат своей работы - структуру, значение и проч. - уже через параметры.
код, написанный с таким подходом, надёжен и понятен.
не знаю, как проголосовать сразу за всех (против всех [за себя])? :)))
Правильный вариант №1 |
|
18
SeraFim
06.09.11
✎
09:29
|
Привык делать, как в №2, но потом пару раз наткнулся, что нужно возвратить Истину или Ложь, в случае успеха/неуспеха заполнения.
Перем а;
Если ЗаполнитьЗначение(а) тогда
Б=а[0];
КонецЕсли;
Переучиваюсь на №1
Правильный вариант №1 |
|
51
sttt
06.09.11
✎
10:14
|
а я специально так делаю ))
Правильный вариант №1 |
|
175
Mort
06.09.11
✎
12:28
|
Я вообще за второй вариант, но 1-й заслуживает "жизни" в единственном случае - если никогда не изменяет тип параметра и ничего не возвращает.
Правильный вариант №1 |
|