Согласие на обработку персональных данных.



04.09.2017
Новая задача Программа вычисления суммы.

03.09.2017
Новое видео Стековый калькулятор и обратная польская запись.

26.08.2017
Новая статья Версии Делфи.

23.08.2017
Новая статья Для кого пишется программа.

13.08.2017
Новая статья Стандарт C++: общие сведения.

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

Result в Паскале

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Слово 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 в Паскале. Применяйте эту замечательную возможность и, поверьте, это избавит вас от множества неприятностей и позволит сэкономить время на разработку программ.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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