Hasta ahora, aprendiste cómo crear constantes y variables para almacenar y usar valores, y cómo tomar decisiones de código mediante la expresión if
y los operadores de decisión como and
y or
.
Ahora es momento de aprender cómo escribir código que puedes reutilizar con facilidad en el programa.
¿Recuerda lo que se dijo en la Lección 2, que una expresión es la unidad de código más pequeña que produce un resultado y, que cuando una expresión se ejecuta y produce un valor, ese valor producido es el resultado?
Puedes aprovechar esto para aumentar la eficacia del código.
Las expresiones se pueden combinar con otras expresiones para crear funciones, y las funciones se pueden usar una y otra vez en el código sin tener que volver a escribir cada vez lo que hacen.
Cómo usar expresiones en las funciones
Una función (también denominada rutina) es código reutilizable que proporciona instrucciones para realizar una acción o crear una salida con base en una entrada.
Las funciones están compuestas por expresiones combinadas.
Para definir una función, necesitas lo siguiente:
- Un nombre único o identificador.
- El tipo de información que se generará como resultado.
- Qué hará la función cuando se la llame.
La siguiente es la sintaxis básica de una función:
name() : type =
codeblock

En la próxima lección, aprenderás más sobre bloques de código, pero por ahora solo necesitas saber que el bloque de código es donde colocarás las expresiones que usarás para crear la función.
Funciones y llamadas a función
Una función es básicamente una secuencia de expresiones a la cual pusiste un nombre.
Un programa usa una función cuando llama a esa función por su nombre. La llamada invoca (activa) esa función. Se trata de una llamada a función.
Lo que esto significa es que en lugar de repetir todas las expresiones que colocas en una función una y otra vez, puedes agruparlas en una sola función con nombre, para que cada vez que llames a esa función en el programa, la computadora se remita a esa función y ejecute las expresiones incluidas en ella.
Por ejemplo, en vez de que CoinsPerMousetrap
siempre tenga el valor 100
, podrías escribir código de modo que el valor cambie si eliges un valor aleatorio cada vez que se ejecuta.

En el siguiente ejemplo, la expresión está establecida para generar un número aleatorio de 1 a 10 con la expresión GetRandomInt(1, 10)
.
Así es como queda desglosada:
GetRandomInt() |
Se trata de una función integrada en Verse que significa mucho más de lo que parece: genera un entero aleatorio. |
1, 10 |
Muestra el rango numérico que puede generar. Si usaras 20, 50 , generaría un número de 20 a 50. Ten en cuenta que el rango se coloca dentro de () , que es parte del nombre de esta expresión. |
Esta es una llamada a función porque le dice a la computadora que llame a la función que obtiene un entero aleatorio en el rango de 1 a 10 que estableciste.
Cuando deseas usar una función en el código, puedes llamar a la función por su nombre. Cada vez que llamas a GetRandomInt()
, se generará un nuevo número aleatorio.
Podrías usar esto para cambiar de manera aleatoria el precio de una ratonera:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Random }
OnBegin<override>()<suspends> : void =
# Inicializa Coins en 500. Dado que es una variable, puedes modificar más adelante.
var Coins : int = 500
# Inicializa CoinsPerMousetrap con un número entero aleatorio entre 1 y 100
CoinsPerMousetrap : int = GetRandomInt(1, 100)
# Imprime el valor actual de Coins (500) en el registro.
Print("Las monedas empiezan en {Coins}.")
# Disminuye Coins según CoinsPerMousetrap e imprime el nuevo valor en el registro.
set Coins = Coins - CoinsPerMousetrap
Print("Después de haber comprado una ratonera, el número de Monedas es {Coins}.")
Observa cómo cada línea de código en el ejemplo de arriba tiene un comentario que explica lo que hace el código. Esto te resultará útil cuando regreses al código después de transcurrido un tiempo, y también será útil para cualquier otro programador que desee agregar o modificar el código que escribiste.
Métodos
¿Recuerdas que en la Lección 2 aprendiste cómo un tipo define las operaciones se pueden realizar en valores almacenados en una variable o una constante? Los tipos también hacen otras cosas.
Del mismo modo que los tipos tienen operaciones que les pertenecen, también tienen funciones que les pertenecen. A estas funciones se le denominan métodos y se les debe llamar de una manera especial.
En vez de llamarlas solo escribiendo su nombre (como Print()
o GetRandomInt()
) la llamada a un método debe empezar con el nombre de una variable (o constante) seguida de .
y luego el nombre del método. Por ejemplo, llamar al método Pounce()
en una variable Cat
sería algo parecido a lo siguiente:
Cat.Pounce()

Clases
Una clase es una plantilla que puedes usar para crear objetos con comportamientos y propiedades similares. Una clase es un tipo compuesto, lo cual significa que está formado por un paquete de datos de otros tipos.
Cuando defines una clase, los datos de esa clase se pueden heredar en cualquier subclase.
Un método es una función que se asocia a una clase. Debido a esto, no todos los métodos funcionan con todos los tipos. El método tiene que declararse en la definición de clase de ese tipo, o en una clase de la cual se herede ese tipo. Si esto aún no tiene sentido, no te preocupes: esto es solo una rápida introducción y, más adelante, obtendrás más información sobre las clases.
Resumen
- Una función es una secuencia de expresiones con nombre que puedes reutilizar.
- Las funciones también se conocen como rutinas.
- Las funciones ahorran tiempo y reducen errores porque no tienes que tipear (o mantener) de manera repetida varias líneas del mismo código.
- Cuando vuelves a utilizar una función en una línea de código, haces esto con una llamada a función.
- Un método es una función que pertenece a un tipo determinado, y se debe llamar en una variable o constante de ese tipo.
- Las clases son tipos compuestos que te permiten combinar datos de otros tipos y compartir comportamientos y propiedades con subclases.