Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.04.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
3-1288770448
evgen2301
2010-11-03 10:47
2013.04.21
Запрет редактирования записей


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


2-1349629558
dars73
2012-10-07 21:05
2013.04.21
Проблема с кодировкой


15-1356268593
lead-in
2012-12-23 17:16
2013.04.21
Поток ввода в .bat-файле Windows


15-1355289271
Andy BitOff
2012-12-12 09:14
2013.04.21
Ждем 12.12.12 12:12:12.12





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский