Раздел: Как стать программистом / Секреты программирования /

Result в Паскале

Lazarus IDE: Основы программирования в Windows Lazarus IDE: Основы программирования в Windows

Несмотря на то, что всё потихоньку уходит в сеть, программирование для настольных компьютеров остаётся востребованным. И будет таковым ещё долго. Ну а самая распространённая операционная система для настольных компьютеров – это по-прежнему Windows. Поэтому любой программист, даже если он собирается стать веб-разработчиком, должен знать хотя бы основы создания программ для Windows. Подробнее...

Слово Result в Паскале в используется для возврата результата из функции.

Как известно, любая функция возвращает какой-то результат. Обычно в Паскале это делается так:

function MyFunc(x : integer) : integer;
begin
  MyFunc := x * x;
end;

То есть где-то в теле функции (обычно в конце, после выполнения всего кода функции) мы пишем имя функции, используя его как идентификатор переменной, и присваиваем ей какое-то значение.

Таким образом в нашем примере функция MyFunc вернёт результат - квадрат числа Х. Если в программе мы вызовем нашу функцию, например, так:

WriteLn(MyFunc(10));

то на экран будет выведено число 100.

Впрочем, всё это вы уже должны знать.

А вот эту фишку многие новички не знают:

function MyFunc(x : integer) : integer;
begin
  Result := x * x;
end;

Обратите внимание, что здесь вместо имени функции мы пишем слово Result.

И функция будет работать точно также. То есть возвращать результат, как это и положено функции.

Прекрасно. Но остаётся вопрос - зачем это надо?

Вот это то и есть основная тема данной статьи. Здесь я покажу вам две причины, почему и когда лучше использовать именно слово Result, а не имя функции для возврата результата.

Причина первая

Довольно часто в практике программирования приходится создавать похожие функции. При этом обычно полностью копируется исходная функция. А затем немного дорабатывается и переименовывается.

Если вы используете такой формат:

function MyFunc(x : integer) : integer; begin MyFunc := x * x; end;

То вам придётся переименовывать функцию не менее чем в двух местах. Если же вы используете слово Result, то вам надо будет переименовать функцию только в одном месте - в заголовке.

Мелочь?

Да. Но, как говорится, дьявол кроется в мелочах. И профессионал отличается от любителя именно отношением к мелочам.

Кроме того, при копировании функции, как правило, мы переименовываем её в заголовке, но часто забываем сделать это там, где функция возвращает результат.

Компилятор, конечно, в этом случае выдаёт ошибку. Но перед этим вы тратите время на компиляцию. И время течёт буквально сквозь пальцы...

Например, в то время, как я пишу эту статью, я занимаюсь разработкой довольно сложной программы, на что у меня уже ушло 250 часов. И ещё уйдёт примерно столько же.

А теперь представьте, что с помощью разных фишек вам удастся сэкономить хотя бы одну минуту из часа и помножьте это на общее количество часов. Цифра будет немаленькой. А ведь это ваше время!

Причина вторая

Вторая причина перекликается с первой. Связана она тоже с возможной необходимостью переименования функции (это может потребоваться по разным причинам).

Представьте, что у вас есть такая функция:

function MyFunc2(x : integer) : integer;
begin
  case x of
  1 : MyFunc2 := x * 100;
  2 : MyFunc2 := x * 200;
  3 : MyFunc2 := x * 300;
  end;
end;

И представьте, что вы решили её переименовать.

В этом случае вам придётся переименовать все идентификаторы в селекторах конструкции case.

В нашем примере их три. Но ведь может быть и 100 и более.

А если бы вы использовали слово Result, то вам опять же надо было бы переименовать только заголовок.

Конечно, в редакторе исходного кода есть такие вещи как поиск и замена, но ведь и их использование тоже отнимает время.

В общем, надеюсь, я убедил вас в полезности использования слова Result в Паскале. Применяйте эту замечательную возможность и, поверьте, это избавит вас от множества неприятностей и позволит сэкономить время на разработку программ.


Первые шаги в программирование Первые шаги в программирование

Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, что такое программирование. И вы даже напишите свою первую программу. Для тех, кто интересуется программированием, но ещё не знает, что это такое, и не пробовал создавать программы (или пробовал, но не получилось). Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика