Тип возвращаемого значения

Поделись знанием:
Перейти к: навигация, поиск

В программировании тип возвращаемого значения (англ. return type) или тип результата (англ. result type) определяет и накладывает ограничения на тип данных, возвращаемых методом или функцией. Во многих языках программирования (особенно это касается языков со статической типизацией, как например, Java, C++ и Си) возвращаемый тип должен быть явно указан при объявлении функции.





Реализации

Си

В языке Си для возврата пользовательских значений вызвавшему коду используется оператор return, либо значение по умолчанию при автоматическом завершении работы функции после её закрывающей фигурной скобки. При этом в функции может быть несколько операторов return, которые могут вызываться в зависимости от заранее заданных условий.

Все типы функций, кроме типа void возвращают значения, указываемое выражением в операторе return. Стандарт C89 допускал выполнение оператора return без указания выражения внутри функции, тип которой отличен от void, и в этом случае происходил возврат какого-либо произвольного значения. Но стандарт C99 уже регламентировал обязательное указание возвращаемого значения. То есть, если есть указание, что функция возвращает какое-либо значение, то оно должно быть заранее указано для оператора return. При этом в случае выполнения функции, не относящейся к типу void, возвращается произвольное значение.

Также в языке Си предусмотрена возможность возврата функцией указателя. Чтобы функция могла возвратить указатель, она должна быть объявлена как возвращающая указатель на нужный тип. То есть, тип возвращаемого указателя должен декларироваться явно. Например, нельзя объявлять возвращаемый тип как int *, если возвращается указатель типа char *. В случае необходимости возврата «универсального» указателя (то есть указателя, который может указывать на данные любого типа) тип результата функции следует определить как void *[1].

Java

Пример на языке Java:

public int someMethod()

Здесь возвращаемый тип — int (целое число). Таким образом, программа может полагаться на метод, возвращающий значение типа int. Для случаев, когда подпрограмма (функция) не возвращает никакого значения используются различные механизмы, например: возвращаемый тип void в некоторых языках программирования:

public void returnNothing()

См. также

Напишите отзыв о статье "Тип возвращаемого значения"

Примечания

  1. * Герберт Шилдт. Полный справочник по C. — 4-е. — М.: «Вильямс», 2007. — 704 с. — ISBN 978-5-8459-1102-5.

Отрывок, характеризующий Тип возвращаемого значения

– Господа, – сказал он, прометав несколько времени, – прошу класть деньги на карты, а то я могу спутаться в счетах.
Один из игроков сказал, что, он надеется, ему можно поверить.
– Поверить можно, но боюсь спутаться; прошу класть деньги на карты, – отвечал Долохов. – Ты не стесняйся, мы с тобой сочтемся, – прибавил он Ростову.
Игра продолжалась: лакей, не переставая, разносил шампанское.
Все карты Ростова бились, и на него было написано до 800 т рублей. Он надписал было над одной картой 800 т рублей, но в то время, как ему подавали шампанское, он раздумал и написал опять обыкновенный куш, двадцать рублей.
– Оставь, – сказал Долохов, хотя он, казалось, и не смотрел на Ростова, – скорее отыграешься. Другим даю, а тебе бью. Или ты меня боишься? – повторил он.
Ростов повиновался, оставил написанные 800 и поставил семерку червей с оторванным уголком, которую он поднял с земли. Он хорошо ее после помнил. Он поставил семерку червей, надписав над ней отломанным мелком 800, круглыми, прямыми цифрами; выпил поданный стакан согревшегося шампанского, улыбнулся на слова Долохова, и с замиранием сердца ожидая семерки, стал смотреть на руки Долохова, державшего колоду. Выигрыш или проигрыш этой семерки червей означал многое для Ростова. В Воскресенье на прошлой неделе граф Илья Андреич дал своему сыну 2 000 рублей, и он, никогда не любивший говорить о денежных затруднениях, сказал ему, что деньги эти были последние до мая, и что потому он просил сына быть на этот раз поэкономнее. Николай сказал, что ему и это слишком много, и что он дает честное слово не брать больше денег до весны. Теперь из этих денег оставалось 1 200 рублей. Стало быть, семерка червей означала не только проигрыш 1 600 рублей, но и необходимость изменения данному слову. Он с замиранием сердца смотрел на руки Долохова и думал: «Ну, скорей, дай мне эту карту, и я беру фуражку, уезжаю домой ужинать с Денисовым, Наташей и Соней, и уж верно никогда в руках моих не будет карты». В эту минуту домашняя жизнь его, шуточки с Петей, разговоры с Соней, дуэты с Наташей, пикет с отцом и даже спокойная постель в Поварском доме, с такою силою, ясностью и прелестью представились ему, как будто всё это было давно прошедшее, потерянное и неоцененное счастье. Он не мог допустить, чтобы глупая случайность, заставив семерку лечь прежде на право, чем на лево, могла бы лишить его всего этого вновь понятого, вновь освещенного счастья и повергнуть его в пучину еще неиспытанного и неопределенного несчастия. Это не могло быть, но он всё таки ожидал с замиранием движения рук Долохова. Ширококостые, красноватые руки эти с волосами, видневшимися из под рубашки, положили колоду карт, и взялись за подаваемый стакан и трубку.