inicio | documentación | contacto
Version para imprimir Imprimir
Inicio » Documentación » Retorno de valores

Retorno de valores

return

Las funciones pueden acabar en cualquier momento retornando algún valor con la instrucción return seguido del valor a retornar. Si no se especifica que valor retornar, entonces se retorna null.
Si una función no retorna nada, acabará en la última línea ejecutable y acabará con return, lo cual implica devolver null.
El valor de retorno puede ser recogido desde donde se ha llamado para asignárselo como valor a una variable o utilizarlo directamente. No es necesario que la instrucción return sea la última de la función y se puede utilizar tantas veces como sea necesario.

En el siguiente ejemplo se llama a una función que devuelve la suma de los dos parámetros. El valor devuelto en un caso se guarda en una variable local llamada resultado y en el segundo caso, se imprime el resultado de la función directamente.

def main
    local resultado
    // Se guarda primero el valor de la suma y después se pinta
    resultado = sumador(1,7)
    println resultado

    // También es posible imprimir el resultado directamente
    println sumador(2,3)
end

def sumador(a, b)
    return a + b
end

El resultado es:

8
5

En el siguiente ejemplo se llama a una función que devuelve el literal "si" o "no" si el número pasado como parámetro a la función es mayor que 5. En los dos casos se imprime el resultado de la función directamente en una misma sentencia println.

def main
    println "¿Es 2 > 5? "+esMayorQueCinco(2)+"!, y ¿20 > 5? "+esMayorQueCinco(20)+"!" 
end

def esMayorQueCinco(numero)
    if numero > 5
        return "si"
    else
        return "no"
    endif
end

El resultado es:

¿Es 2 > 5? si!, y ¿20 > 5? no!  

rtrue / rfalse

Las sentencias especiales rtrue y rfalse equivalen a retornar true y false, respectivamente.

stop / continue

Es posible también finalizar una función con las instrucciones especiales stop y continue, las cuales retornan los valores especiales #stop y #continue respectivamente. Estos valores especiales valen true y false, respectivamente, y sirven para mejorar considerablemente la lectura del código.

def main
    local conocido
    conocido = sonIguales(2,3)
    if  conocido == #stop
        println "Son distintos."
    elseif conocido == #continue
        println "Son iguales."
    endif
end

def sonIguales(op1, op2)
    if op1 == op2
        continue
    endif
    stop
end

El resultado es:

Son distintos.

Equivalencias

return valorFinaliza la función y devuelve el valor especificado
returnreturn null
continuereturn #continue
stopreturn #stop
rtruereturn true
rfalsereturn false
Última modificación: miércoles 14 de mayo de 2008 15:28:05
Fecha de creación: sábado 24 de noviembre de 2007 20:59:45
Categorías: