Hasta ahora, has aprendido a crear constantes y variables para almacenar y utilizar valores, y a tomar decisiones en el código utilizando la expresión if y operadores de decisión como and y or.
Ahora es el momento de aprender a escribir código que puedas reutilizar fácilmente en tu programa.
¿Recuerdas que en la lección 2 dijimos que una expresión es la unidad más pequeña de código que produce un resultado? ¿Y que cuando una expresión se ejecuta y emite un valor, el valor que emite es el resultado?
Puedes aprovecharte de ello para que tu código sea más eficaz.
Las expresiones pueden combinarse con otras expresiones para crear funciones, y las funciones pueden utilizarse una y otra vez en tu código sin tener que reescribir lo que hacen cada vez.
Usar expresiones en funciones
Una función (también llamada rutina) es código reutilizable que proporciona instrucciones para realizar una acción o para crear una salida basada en una entrada.
Las funciones están formadas por expresiones combinadas.
Para definir una función, necesitas
- Un nombre único o identificador.
- El tipo de información que resultará.
- Lo que la función hará cuando sea llamada.
Esta es la sintaxis básica de una función:
name() : type =
codeblock
Aprenderás más sobre los bloques de código en la próxima lección, pero por ahora solo necesitas saber que el bloque de código es donde pondrás las expresiones que utilices para construir tu función.
Funciones y llamadas de función
Una función es básicamente una secuencia de expresiones que has nombrado.
Un programa utiliza una función llamando a esa función por su nombre. La llamada invoca (activa) esa función. Eso es una llamada de función.
Lo que esto significa es que, en lugar de repetir una y otra vez todas las expresiones que pongas en una función, puedes agruparlas en la función nombrada, y luego, cada vez que llames a esa función en el programa, el ordenador hará referencia a esa función y ejecutará las expresiones que contenga.
Por ejemplo, en lugar de que CoinsPerMousetrap tenga siempre el valor 100, podrías escribir código que cambiara el valor eligiendo un valor aleatorio cada vez que se ejecuta.
En el ejemplo siguiente, la expresión está configurada para generar un número aleatorio del uno al diez mediante la expresión GetRandomInt(1, 10).
Así es como se desglosa:
GetRandomInt() |
Se trata de una función integrada en Verse que genera un número entero aleatorio. |
1, 10 |
Muestra el rango numérico en el que puede generar. Si utilizaras 20, 50, generaría un número del veinte al cincuenta. Observa que el rango va dentro de (), que forma parte del nombre de esta expresión. |
Se trata de una llamada de función porque indica al ordenador que llame a la función que obtiene un número entero aleatorio en el intervalo que estableciste de 1 a 10.
Cuando quieras utilizar una función en tu código, puedes llamar a la función por su nombre. Cada vez que llames a GetRandomInt(), se generará un nuevo número aleatorio.
Podrías utilizarlo para cambiar aleatoriamente 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 las monedas a 500. Al tratarse de una variable, puedes cambiarla después.
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 monedas (500) en el registro.
Print("Las monedas empiezan en {Coins}.")
# Disminuye las monedas en CoinsPerMousetrap e imprime el nuevo valor en el registro.
set Coins = Coins - CoinsPerMousetrap
Print("Después de comprar una ratonera, te quedan {Coins} monedas.")
Fíjate en que casi todas las líneas de código del ejemplo anterior tienen un comentario que explica lo que hace el código. Esto es útil tanto para ti cuando vuelvas a tu código después de que haya pasado algún tiempo, como para cualquier otro programador que quiera añadir o modificar el código que escribiste.
Métodos
¿Recuerdas que en la lección 2 aprendiste cómo un tipo define qué operaciones pueden realizarse con los valores almacenados en una variable o constante? También hay otras cosas que hacen los tipos.
Del mismo modo que los tipos tienen operaciones que les pertenecen, también tienen funciones que les pertenecen. Estas funciones se conocen como métodos y deben llamarse de una forma especial.
En lugar de llamarlos solo escribiendo su nombre (como Print() o GetRandomInt()), la llamada a un método debe comenzar con el nombre de una variable (o constante) seguido de un . y, a continuación, el nombre del método. Por ejemplo, llamar al método Pounce() sobre una variable Cat tendría el siguiente aspecto:
Cat.Pounce()
Clases
Una clase es una plantilla que puedes utilizar para crear cosas que tengan comportamientos y propiedades similares. Una clase es un tipo compuesto, lo que significa que está formada por un conjunto de datos de otros tipos.
Cuando defines una clase, los datos de esa clase pueden ser heredados por cualquier subclase.
Un método, por tanto, es una función que se adjunta a una clase. Por eso, no todos los métodos funcionan con todos los tipos. El método debe declararse en la definición de clase de ese tipo o en una clase de la que herede ese tipo. Si esto todavía no tiene mucho sentido, no te preocupes: es solo una introducción rápida y tendrás más información sobre las clases más adelante.
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 los errores porque no tienes que escribir (o mantener) repetidamente varias líneas del mismo código.
- Cuando reutilizas una función en una línea de código, lo haces con una llamada de función.
- Un método es una función que pertenece a un tipo determinado y debe ser llamada sobre una variable o constante de ese tipo.
- Las clases son tipos compuestos que te permiten combinar datos de otros tipos y luego compartir los comportamientos y propiedades con subclases.