Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 412 413 [414] 415 416 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6196
,
|
|
|
|
Цитата korvin @ А как вы относитесь к э-э-э... способу указания возвращаемого значения функции: переменная Result как в Delphi или инструкция return, как в остальных обсуждаемых языках? Какой способ по-вашему лучше и почему? Лично мне return больше по душе, чем Result, ибо второе выглядит костылеобразно, в виде какойто глобальной переменной, плюс в качестве переменной этот идентификатор уже не юзнешь... |
|
Сообщ.
#6197
,
|
|
|
|
Ну, частенько всё равно есть какия-то локальная переменная, которой делается return.
|
|
Сообщ.
#6198
,
|
|
|
|
![]() ![]() mov $0x01,%eax ret |
|
Сообщ.
#6199
,
|
|
|
|
Цитата KILLER @ Лично мне return больше по душе, чем Result, ибо второе выглядит костылеобразно Чего в нем костылеобразного? Цитата KILLER @ в виде какой-то глобальной переменной Вообще-то локальной. Цитата KILLER @ плюс в качестве переменной этот идентификатор уже не юзнешь... Это да, жаль нельзя указать имя. |
|
Сообщ.
#6200
,
|
|
|
|
Цитата korvin @ Это да, жаль нельзя указать имя. ИМХО единственный минус, хотя еще в минусы можнон записать, что вместо Result, можно использовать имя функции. return - нагляднее |
|
Сообщ.
#6201
,
|
|
|
|
Цитата Qraizer @ Ну, частенько всё равно есть какия-то локальная переменная, которой делается return. Это да, но она локальная - это во первых, я ее могу назвать по своему усмотрению - это во вторых. Цитата korvin @ Чего в нем костылеобразного? после запятой поясняеца. |
|
Сообщ.
#6202
,
|
|
|
|
Result := Func(Arg); Exit; выполняет tail-call-оптимизацию?
|
|
Сообщ.
#6203
,
|
|
|
|
Цитата KILLER @ Лично мне return больше по душе, чем Result, ибо второе выглядит костылеобразно, в виде какойто глобальной переменной, плюс в качестве переменной этот идентификатор уже не юзнешь... Наоборот - структурному программированию досрочный выход слегка чужд Добавлено Цитата KILLER @ плюс в качестве переменной этот идентификатор уже не юзнешь... А ты хочешь идентификатор Result заюзать в функции не в качестве результата, а в качестве чего-то другого? Я бы если бы такое увидел - разработчику бы руки оторвал. Это из разряда define true = false; // счастливой отладки |
|
Сообщ.
#6204
,
|
|
|
|
Цитата KILLER @ 1) Это да, но она локальная - это во первых, я ее могу назвать по своему усмотрению - это во вторых. 2) после запятой поясняеца. 1) Result тоже локальна вообще-то 2) Одно пояснение ложно, второе сомнительно. |
|
Сообщ.
#6205
,
|
|
|
|
Цитата --Ins-- @ Наоборот - структурному программированию досрочный выход слегка чужд На самом деле, все зависит от того, как напишешь. Может быть чужд, а может быть гармоничен. Например, досрочный выход при некоторой проверке, при граничных вариантах, если вычисления проще и т.д. |
|
Сообщ.
#6206
,
|
|
|
|
Цитата D_KEY @ На самом деле, все зависит от того, как напишешь. Может быть чужд, а может быть гармоничен. Например, досрочный выход при некоторой проверке, при граничных вариантах, если вычисления проще и т.д. То, что он лучше читается, не означает, что он перестал быть чужд структурному подходу. |
|
Сообщ.
#6207
,
|
|
|
|
Цитата Мяут-Настоящий @ Result := Func(Arg); Exit; выполняет tail-call-оптимизацию? Нет.. Мы юзаем оба: ![]() ![]() Result := 42; Exit; ... Exit(42); |
|
Сообщ.
#6208
,
|
|
|
|
Цитата DesweR @ Exit(42); Интересно, не знал про этот способ. А с массивами/структурами он работает? |
|
Сообщ.
#6209
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ На самом деле, все зависит от того, как напишешь. Может быть чужд, а может быть гармоничен. Например, досрочный выход при некоторой проверке, при граничных вариантах, если вычисления проще и т.д. То, что он лучше читается, не означает, что он перестал быть чужд структурному подходу. Дело не только в чтении. Я не вижу противоречий со структурным подходом досрочного возврата из подпрограммы. Еще скажи, что и исключения мешают структурному подходу. Впрочем, строго-теоретически может быть так и есть. |
|
Сообщ.
#6210
,
|
|
|
|
Цитата OpenGL @ Интересно, не знал про этот способ. А с массивами/структурами он работает? Второй способ появился в 2006 версии (ну или поздней). Работает со всем. |