En programación informática , el tipo de retorno (o tipo de resultado ) define y restringe el tipo de datos del valor devuelto por una subrutina o método . [ 1 ] En muchos lenguajes de programación (especialmente lenguajes de programación de tipado estático como C , C++ , Java ) el tipo de retorno debe especificarse explícitamente al declarar una función.
En el ejemplo de C:
int calcularSuma ( int a , int b ) { return a + b ; }El tipo de retorno es int . Por lo tanto, el programa puede confiar en que el método devolverá un valor de tipo int . Se utilizan varios mecanismos para el caso en que una subrutina no devuelva ningún valor; por ejemplo, en algunos lenguajes de programación se utiliza un tipo de retorno void :
void sayHello () { printf ( "Hola, mundo!" ); }Devolver un valor desde un método
Un método regresa al código que lo invocó cuando completa todas las instrucciones del método, llega a una instrucción de retorno o lanza una excepción, lo que ocurra primero.
Para declarar el tipo de retorno de un método, este se incluye en su declaración. Dentro del cuerpo del método, la instrucción `return` se utiliza para devolver el valor.
Cualquier método declarado como void no devuelve ningún valor. No es necesario que contenga una instrucción return, pero puede hacerlo. En tal caso, se puede usar una instrucción return para salir de un bloque de control de flujo y finalizar el método, y se usa simplemente así:
devolver ;Si se devuelve un valor de un método declarado void, se producirá un error de compilación.
Cualquier método que no esté declarado voiddebe contener una instrucción return con un valor de retorno correspondiente, como este:
devolver valor de retorno ;El tipo de datos del valor de retorno debe coincidir con el tipo de retorno declarado del método; por ejemplo, no se puede devolver un intvalor desde un método declarado para devolver un bool.
El getArea()método de la Rectangleclase que se analizó en las secciones sobre objetos devuelve un int:
clase Rectángulo { private int ancho ; private int alto ; // ...// Método para calcular el área del rectángulo public int getArea () { return width * height ; } }Este método devuelve el número entero al que width * heightse evalúa la expresión.
El getArea()método devuelve un tipo primitivo. Un método también puede devolver un tipo de referencia . Por ejemplo, en un programa para manipular Bicycleobjetos, podríamos tener un método como este:
clase Bicicleta { // clase bicicleta }clase RaceEnvironment { // clase de entorno }clase pública BicycleRace { // ...public Bicycle playBicycleRace ( Bicycle bike1 , Bicycle bike2 , RaceEnvironment env ) { Bicycle winner ; // Código para calcular qué bicicleta es // más rápida, dada la marcha // y la cadencia de cada bicicleta y dado el // entorno (terreno y viento) return winner ; } }Referencias
- ↑ Kernighan, Brian W. ; Ritchie, Dennis M. (1988). El lenguaje de programación C (2.ª ed.). Prentice Hall. ISBN 0-13-110362-8.
- Subrutinas