Argumentos opcionales

Hemos visto funciones internas que toman un número variable de argumentos. Por ejemplo, string.find puede tomar dos, tres o cuatro argumentos.

Es posible escribir funciones definidas por el usuario con listas de argumentos opcionales. Por ejemplo, podemos modernizar nuestra propia versión de encuentra para que haga lo mismo que string.find.

Esta es la versión original de la sección «Encuentra«:

Esta es la versión aumentada y mejorada:

El tercer parámetro, comienzo, es opcional porque se proporciona un valor por omisión, 0. Si invocamos encuentra sólo con dos argumentos, utilizamos el valor por omisión y comenzamos por el principio de la cadena: