Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.04.21;
Скачать: CL | DM;

Вниз

присвоение результата фанции   Найти похожие ветки 

 
Toretto   (2012-12-20 11:05) [0]

Стал замечать, что в исходниках некоторых компонентов результат функции присваивается не зарезирвированой переменной Result, а переменной с именем функции, т.е.:


function Test: Bool;
begin
 Test := True;
end;


Это хорошо с точки зрения стиля программирования


 
И. Павел ©   (2012-12-20 11:07) [1]

> [0] Toretto   (20.12.12 11:05)

Просто привыкли. Я тоже первый год только так писал. Потом разработчики delphi по просьбам программистов добавили переменную result.
ИМХО понятнее result, т.к. что Test не простая переменная а возвращаемое значение, нужно еще сообразить.


 
Ega23 ©   (2012-12-20 11:08) [2]


> Это хорошо с точки зрения стиля программирования

Это утверждение или вопрос?


> Стал замечать

Это ещё в древнем Турбо-Паскале было. И, кстати, я не уверен, была ли там переменная Result. Во всяком случае, до Delphi я её вроде не использовал.


 
И. Павел ©   (2012-12-20 11:08) [3]

> первый год

Ну т.е. на turbo pascal. Там выбора не было — result отсутствовал.


 
И. Павел ©   (2012-12-20 11:15) [4]

А вот недостаток использования переменной с именем функции:
«В данном случае оба варианта будут вести себя полностью аналогично. Различия проявляются лишь в том случае, если использовать такую переменную в выражениях в теле функции. В подобных случаях следует использовать именно переменную result, а не имя функции, поскольку использ0овании имени функции в выражении внутри самой функции приведет к ее рекурсивному вызову.»


 
O'ShinW ©   (2012-12-20 11:16) [5]


>  была ли там переменная Result

не было
писал как-то кому-то лабу - естественно в D в консоли, а надо было в TP.
Потом претензии были, что не компилится.

---

по сабжу
К Result привык

и потом, можно в середине проверить
result := FirstCalc;
result := result and SecondCalc;
if Result then
 DoNextCalc

а если написать if Test then
еще раз Test вызовется,и  переполнение стека


 
БарЛог ©   (2012-12-20 11:25) [6]

И. Павел ©   (20.12.12 11:08) [3]

> Ну т.е. на turbo pascal. Там выбора не было — result отсутствовал.

Вот хоть убей - помню, что всегда только Result писал. Оказалось, и правда не было :(


 
RWolf ©   (2012-12-20 11:44) [7]

тяжёлое наследие паскаля; читается хуже, гибкости меньше; в топку.


 
Pavia ©   (2012-12-20 20:52) [8]

По поводу result. В ввели его в Delphi 1 вернее в Object Pascal.  Обетом есть doc файл на сайте эмбарго.


 
брат Птибурдукова   (2012-12-20 21:01) [9]

Почему "обетом"? Может "порукой"? Тоже слово красивое, но более подходит к ситуации. %-)


 
O'ShinW ©   (2012-12-20 21:12) [10]

Для > фанции как раз >обетом нормально будет :)


 
Игорь Шевченко ©   (2012-12-20 22:03) [11]


> сайте эмбарго


феерично.


 
Eraser ©   (2012-12-20 22:17) [12]


> Toretto   (20.12.12 11:05) 

уже давно можно даже так
function Test: Bool;
begin
Exit(True);
end;


правда здесь оно, конечно, не к месту.


 
Германн ©   (2012-12-21 02:13) [13]


> Ega23 ©   (20.12.12 11:08) [2]
>
>
> > Это хорошо с точки зрения стиля программирования
>
> Это утверждение или вопрос?
>
>
> > Стал замечать
>
> Это ещё в древнем Турбо-Паскале было. И, кстати, я не уверен,
>  была ли там переменная Result.

Неявно она там была. В виде @result. Но не для всех функций.


 
Дмитрий С ©   (2012-12-21 02:24) [14]

Мне кажется я бы сейчас уже не смог программировать на паскале )


 
Германн ©   (2012-12-21 02:44) [15]


> Дмитрий С ©   (21.12.12 02:24) [14]
>
> Мне кажется я бы сейчас уже не смог программировать на паскале
> )
>

Если приспичит - сможешь.
Главное тут различать  "правую" и "левую" стороны выражения!


 
брат Птибурдукова   (2012-12-21 08:44) [16]


> В виде @result
Так это чисто ассемблерная приблуда, насколько я помню. И была она там, где результат нельзя было в регистрах вернуть, не?



Страницы: 1 вся ветка

Текущий архив: 2013.04.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.007 c
15-1354293250
Rouse_
2012-11-30 20:34
2013.04.21
Ну чтож, добил таки цикл статей про отладку.


15-1356407480
MonoLife
2012-12-25 07:51
2013.04.21
Сколько стоит программа?


15-1356228928
makz
2012-12-23 06:15
2013.04.21
Курсор мыши


2-1349962404
Wadimka
2012-10-11 17:33
2013.04.21
Как изменить имя текущего пользователя Windows?


15-1356325818
Андреевич
2012-12-24 09:10
2013.04.21
sql-запрос