Introducción a la programación en Lua | Kyle Schaub | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Introducción a la programación en Lua

teacher avatar Kyle Schaub, Software Engineer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      1:06

    • 2.

      Variables

      5:08

    • 3.

      Declaraciones condicionales

      7:07

    • 4.

      Bucles

      8:24

    • 5.

      Funciones

      6:33

    • 6.

      Comentarios

      2:05

    • 7.

      Local vs. global

      2:15

    • 8.

      Tablas

      9:25

    • 9.

      Para terminar

      2:18

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

228

Estudiantes

18

Proyectos

Acerca de esta clase

Con el lenguaje de programación "Lua", esta clase aborda los fundamentos de la programación. ¡No se requiere experiencia previa!

Lua es un lenguaje de scripting potente, ligero e integrable. Aunque es fácil de usar para principiantes, Lua es útil para todo tipo de desarrollo, como videojuegos (incluidos títulos como Roblox, Dark Souls y World of Warcraft), sistemas integrados (como infotainment automotriz) y aplicaciones industriales (como Adobe Lightroom). Su pequeño tamaño y su bajo uso de recursos lo hacen útil en cualquier dispositivo, incluso con capacidades de hardware limitadas.

Puedes seguir cada video codificando en tu navegador web: ¡todas las computadoras son compatibles con esta clase! A lo largo de las lecciones, discutiremos los conceptos básicos, como variables, bucles y funciones. Lo que realmente distingue a Lua es su estructura de datos primaria: tablas. Si ya tienes experiencia en otro lenguaje de programación, aprender Lua será un proceso fácil; pero las mesas son tan únicas que esta lección en particular es imprescindible para

todos.La clase termina con un proyecto corto para probar los fundamentos. Se te dará un programa de Lua parcialmente completado y, utilizando los conocimientos de cada una de las lecciones anteriores, puedes crear tu propia solución para que el código sea completamente funcional.

Las habilidades que aprendas en esta clase serán una excelente introducción a la codificación con Lua, y estarás en camino de desarrollar cualquier tipo de script que se adapte a tu proyecto. ¡Espero que puedas unirte a nosotros!

Conoce a tu profesor(a)

Teacher Profile Image

Kyle Schaub

Software Engineer

Profesor(a)
Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Bienvenido a la clase de programación de Introducción a Lua. El objetivo de esta clase es repasar los conceptos básicos de la programación, así como los fundamentos del uso de Lua Si nunca antes has programado, esta clase será perfecta para que pruebes por primera vez cómo es la codificación y aprendas todos los conceptos que se utilizan en todos los lenguajes de programación. Si ya tienes algo de experiencia en codificación, aprenderás los conceptos básicos de Lua muy rápidamente Sin embargo, los videos en las mesas son una visita obligada. Eso es lo que realmente separa a Lua de otros idiomas. Al final de la clase, se te asignará un proyecto, lo que será una excelente oportunidad para experimentes con el lenguaje y construyas algo genial. Empezar con Lua es muy fácil. Voy a estar pasando por cada lección solo en un navegador web. Si vas a ua.org, puedes ir a este enlace de descarga, ir a la demostración en vivo, y aquí hay algunos sitios diferentes entre los que puedes elegir Cada uno de estos tiene una pequeña sección de texto por aquí que te permite escribir código Lua, y puedes ejecutarlo directamente en el navegador Una vez que esté todo listo, continúe con la siguiente lección, donde escribiremos nuestro primer bit de código Lua 2. Variables: Lo primero que vamos a discutir son las variables. Una variable es una pieza de datos almacenados cuyo valor se puede cambiar. Para demostrarlo, sigamos adelante y pongamos uno en nuestro código. En la parte superior del archivo, voy a escribir mensaje igual, y luego entre comillas, Lua es increíble En esta línea, acabamos de crear una variable. El nombre de las variables es mensaje, y el valor que contiene esta variable es el texto Lua es impresionante Ahora bien, para asegurarnos de que hicimos esto correctamente, vamos a imprimir el valor de esta variable. Entonces en la impresión, en lugar de Hello World, sigamos adelante y pasemos el mensaje. Entonces el que corremos, veremos el texto Lua es increíble. Simplemente va a agarrar cualquier valor que contenga esta variable. Y se pueden almacenar todo tipo de datos. En este caso, se trata de almacenar texto. Y en la programación, texto como este se llama cadena. Una cadena son solo algunas palabras o letras rodeadas de comillas como esta. Una variable también podría almacenar números. Por ejemplo, podríamos establecer esta variable de mensaje en cinco, solo el número cinco. Y ten en cuenta que no queremos comillas alrededor de las cinco porque queremos que se trate como un número, no como una cadena. Y el mismo trato que antes, si estamos imprimiendo el valor del mensaje, deberíamos ver cinco por aquí en la salida. Podemos tener más o menos tantas variables como queramos. Por ejemplo, pongamos otra variable, y yo la llamaré pollo. Y pongámoslo igual a diez. Entonces ahora tenemos una variable de mensaje, y tenemos una variable pollo. Pero incluso cuando corremos, todavía va a decir cinco por aquí porque estamos imprimiendo mensaje específicamente. Hagamos una tercera variable, y llamaremos a esta un resultado. Pero esta vez, hagamos algo un poco diferente. En lugar de establecerlo igual a un nuevo valor, pongámoslo igual a pollo. Entonces ahora, el resultado de la variable ahora contiene cualquier valor que tenga el pollo. Dado que el pollo tiene diez, y vamos a intentar imprimir el resultado esta vez, deberíamos ver diez en la salida porque el resultado contiene cualquier valor que tenga el pollo, y estamos imprimiendo el resultado. Al programar, el valor almacenado en una variable podría cambiar más adelante en el programa. Entonces aunque, por ejemplo, pollo empieza a las diez, más tarde podría cambiarlo a pollo igual a 25, por ejemplo. Y cuando imprimimos pollo, deberíamos ver 25, porque a pesar de que empieza siendo diez, esta línea la cambia a 25, y la imprimimos en ese punto. Esta variable de resultado se establece pollo aquí en la línea tres. En este punto, ya que el programa se ejecuta de arriba a abajo, el pollo se establece en diez, resultado se establece en pollo, lo que significa que el resultado en realidad contiene diez, y podemos ver que si imprimimos resultado y ejecutamos. Son diez. Otra forma en que las variables pueden cambiar en tu programa es realizando aritmética básica sobre ellas. Esto significa que podemos hacer suma, resta, multiplicación o división con estas variables Entonces probemos eso con resultado. En lugar de establecer el resultado igual al pollo, pongámoslo igual a pollo más uno. Entonces lo que esto hace es ya que el pollo equivale a diez, veremos diez más uno. Y cuando imprimimos resultado, veremos 11. Se realizó esta aritmética aquí mismo. Y puedes realizar cualquier tipo. Como dije, se puede hacer menos uno o veces decir veces 20. Veremos que dice 200, o puedes hacer división. Y de manera similar, obtendremos el valor decimal. Ten en cuenta que esta matemática solo funciona cuando estamos trabajando con números. Si decir pollo era una cuerda, como, hola. Bueno, esto de pronto se vuelve extraño porque estamos tratando tomar la cuerda hola y dividirla por 20. Y eso realmente no tiene sentido. De hecho, cuando intentes correr, veremos un error. Y cuando estás programando, es muy común que te encuentres con errores. Es solo una parte natural del aprendizaje y solo una parte natural de la programación. Incluso los expertos se encuentran con errores. Y aquí podemos ver que se trata de realizar la aritmética En un valor de cadena, pollo global. Entonces no se puede realizar la aritmética en las cadenas, y es por eso que necesitaríamos cambiarlo nuevo a un número para que esto funcione correctamente E incluso después de que una variable ya esté inicializada, aún podemos cambiar su valor más adelante con la aritmética Entonces con pollo, por ejemplo, podría decir pollo equivale a pollo más diez. Entonces aquí tenemos pollo arranca a la una, y luego esta línea va a poner pollo igual al valor actual del pollo, que es uno más diez. Entonces eso debería darnos 11, y si lo imprimimos, veremos 11. Eso cubre los conceptos básicos del uso de variables. Estas son la base de cualquier programa, y tener una buena idea de cómo funcionan te convertirá en un desarrollador muy capaz. 3. Declaraciones condicionales: A continuación, vamos a cubrir declaraciones I, LSF, y demás Estos tipos de declaraciones pueden conocerse como declaraciones condicionales porque determinan si una sección de nuestro código se ejecutará o no en un momento dado en función de una condición. Vamos a comenzar con nuestro código luciendo así donde tenemos una variable de mensaje, y lo estamos imprimiendo. Y cuando corremos, solo vemos cero por aquí. Además, agreguemos otra variable al programa, y sólo voy a llamarlo condición. Puedes llamarlo como quieras. Y también puedes configurarlo a lo que quieras. Lo pondré igual a 25. Vamos a usar esta variable como parte de una sentencia condicional que va a cambiar el valor del mensaje. Vamos a comenzar con una sentencia if, y eso comienza con si la condición es mayor que cero, entonces y luego termina. Ahora entre esto entonces y este fin, vamos a poner lo que realmente sucede cuando la condición es cierta. Entonces voy a poner mensaje igual a uno. Esta línea se lee como si el valor de condición fuera mayor que cero, entonces y sólo cuando esa condición sea verdadera, va a realizar lo que hay aquí dentro. Va a decir mensaje es igual a uno. Eso lo podemos probar. El mensaje empieza en cero, pero si corremos, podemos ver que va a uno. Alternativamente, cambiemos la condición a negativo 25. Ahora bien, esta afirmación if ya no será cierta porque negativo 25 no es mayor que cero. Como esta condición no es cierta, eso significa que esta línea de aquí no funcionará. Nuevamente, cuando corremos, vemos que el mensaje sigue siendo cero. Esta línea nunca sucede. Vamos a agregar otra declaración condicional a nuestro código, y va a ser una idea muy similar a la anterior. Pero esta vez comprobará si condición es menor o igual a cero entonces. Y aquí dentro, pondremos mensaje igual a uno negativo. Así que la misma idea que antes, que va a ver es condición menor o igual a cero. Y sólo si ese es el caso, ¿el mensaje se pondrá en negativo? Y vamos a ver que eso pasa. Esta línea se alcanza porque su condición es verdadera. Pero nuevamente, todos nuestros programas ocurren de arriba a abajo. Entonces primero, esta línea pasa, luego esta línea, y luego va a verificar esta condición, en nuestro caso, esta condición no es cierta. Entonces esta línea no sucede. Entonces pasa a esta condición, y como ésta es cierta, esta línea sí sucede. Escribir nuestro código de esta manera con dos declaraciones if separadas, una justo después de la otra es aceptable, pero hay una forma mucho más fácil y eficiente de escribir exactamente esta misma cosa. Así que en realidad voy a eliminar esta segunda condición o la segunda sentencia if, y en su lugar, vamos a agregar a esta primera. Puedo poner otra cosa y decir mensaje es igual a uno negativo. Este es un nuevo tipo de condición, donde solo dice otra cosa. La forma en que esto lee es que primero va a verificar esta condición. Si la condición es mayor que cero, entonces sucede esta línea. Pero si esta condición no es cierta, o si condición es menor que cero en lugar de mayor que, entonces va a decir otra cosa, y una vez que se alcanza esta otra cosa, entonces lo que sea entre else y el final es lo que se ejecuta. En este caso, mensaje equivale a uno negativo. Esta es exactamente la misma funcionalidad que antes, pero es más compacta con un solo conjunto de if y luego else. Y podemos probar esto. Si corremos, seguimos obteniendo nuestro negativo en la salida. Hasta ahora, hemos usado declaraciones if, hemos usado declaraciones else, y finalmente, vamos a pasar al último condicional que es una especie de combinación entre estos dos y se llama el else if. Adelante y pon uno aquí, y de hecho voy a quitar nuestro otro por ahora solo para limpiarlo un poco. Pero en su lugar, voy a agregar el LI. Entonces dices el if, una palabra así, y le agregaremos una condición a esto. La condición es menor que diez negativos, entonces, y en este caso, diremos mensaje es igual a uno negativo. Entonces esto es diferente a antes porque con nuestra declaración, no había ninguna condición adherida a ella. Entonces lo que va a pasar es esta condición se va a comprobar primero, y si es cierto, vamos a hacer esto. Pero si esta condición no es cierta, va a pasar a aquí SIF, y va a comprobar esta condición Y si esta es cierta, entonces esta línea aquí va a correr. Pero si ninguna de estas condiciones es cierta, entonces ninguna de estas líneas va a correr en absoluto. Entonces probando esto ya que condición es negativa 25 en este momento, todavía obtenemos nuestro negativo. Pero si cambiamos esto a, digamos cinco negativos en su lugar, así que con ese cinco negativo no es mayor que cero, así pasa al SIF, y el cinco negativo tampoco es menor que diez negativo Por lo que ninguna de estas condiciones se cumplió, y eso significa que ese mensaje permanece en cero, en qué comienza. Ahora para amarrar todo es que puedes poner un else además de todo lo demás. Entonces voy a poner mensaje igual, y pongámoslo a una cadena. No se cumplieron condiciones. Entonces con este ejemplo negativo de cinco, esto no es cierto. Esto no es cierto, así que se va a golpear a lo demás, y esta línea va a suceder. Entonces podemos ver si corremos, no se cumplieron condiciones. Ahora, con bloques de código como este, puedes tener uno si. Puedes tener uno más. Pero entre lo demás y el si, puedes tener tantas de estas porciones el if como quieras. Entonces voy a poner en otra, en realidad. Diré ls si condición, y diremos que es igual a cinco negativos. Entonces. Y en este caso, voy a decir mensaje equivale a hola. Ahora, ten en cuenta que aquí estoy usando el doble signo igual. Cuando estás usando doble signo igual, así es como estás probando para ver, es esto igual a esto. Pero cuando estás usando un signo igual, eso se llama asignación, lo que significa que este valor está siendo asignado directamente a esta variable. Entonces no estamos poniendo condición a cinco negativos. Estamos probando para ver es condición igual a cinco negativos. Y si lo es, entonces esta línea va a pasar. Y podemos probar eso, si corremos, veremos hola. Un último comentario sobre este tema es que en estas intersecciones, puedes tener tantas líneas aquí como quieras Además de hola, podría hacer una impresión extra y decir: Hola. Cuando hago clic en Ejecutar, obtenemos tanto la i como la hola, ambas líneas corren porque todo entre esto y esto, toda la sección interior con sangría, eso va a ser ejecutada 4. Bucles: El siguiente tema son los bucles, y hay una razón por la que te estoy mostrando estos justo después de las declaraciones condicionales. Los bucles son secciones de código que se ejecutan más de una sola vez en función de ciertas condiciones. Para presumir esto, saltaremos directamente con nuestro primer tipo de bucle, el bucle ile. Empiezo con el código luciendo así donde tenemos nuestro mensaje, y lo estamos imprimiendo. Y después del mensaje, vamos a escribir el primer bucle, y es un bucle. Vamos a decir mensaje Y es menos de diez, D. Y entonces aquí dentro, digamos mensaje es igual a mensaje más uno. Repasemos esta sección de código línea por línea para obtener una mejor comprensión de lo que hace. Empezamos con ile, y entonces este mensaje es menos de diez. Entonces esto es realmente similar a nuestras declaraciones if donde esta es una condición. Y sólo si esta condición es cierta, ¿pasamos a la intersección? Y dentro de este bucle ile, estamos diciendo que el mensaje es igual al valor actual del mensaje, que es cero más uno. Entonces después de que esta línea se ejecute, eso significaría que ese mensaje equivaldría a uno. Pero lo que hace interesante a Loops es que una vez que llega hasta aquí, el final, en realidad va a saltar hacia atrás e ir por qué, mensaje es menos de diez. Entonces en realidad va a revisar el estado de nuevo, justo después de que lo revisé la primera vez. Y el mensaje es ahora uno. Entonces va a preguntar, ¿uno es menos de diez? Y como lo es, eso significa que el mensaje va a aumentar a dos. Y luego una vez más, volveré aquí son dos, menos de diez, y luego ahora son tres, son tres, menos de diez, y una y otra y otra vez, va a seguir haciendo un bucle, que es de donde viene el bucle de nombre Hasta que finalmente, el mensaje va a aumentar a ser diez, y va a decir que son diez, menos de diez. Y como diez no es menos de diez, eso quiere decir que la condición ya no es cierta, y esta intersección deja de correr. Ya no corre después de eso. Y luego sigue adelante. Después de esto corre, eso significa que esta intersección corrió un total de diez veces y el mensaje terminó siendo diez. Y eso lo podemos ver. Si imprimimos mensaje y corremos, vemos diez. Ten en cuenta que todo este proceso por el que acabamos de platicar sucede instantáneamente Dado que las computadoras son increíblemente rápidas, el programa se encuentra con este bucle while aquí y casi de inmediato puede atravesar todas las iteraciones Incluso podrías saltar este diez hasta 10,000, y aún así va a correr instantáneamente Obtiene a través de las 10,000 iteraciones en poco tiempo. Hablando de ello, este mensaje equivale a mensaje más uno es un ejemplo muy básico. Entre el do y el final, puedes tener tanto código como quieras, al igual que las sentencias if, y todo se ejecutará siempre y cuando la condición sea verdadera. Por ejemplo, podríamos agregar una segunda variable. Yo seguiré adelante y solo lo llamaré prueba, y lo pondré igual a cero. Entonces dentro del bucle, hagamos algo así como test es igual a test menos cinco. Así que también voy a bajar esto a diez, así que es un poco más fácil de entender. Entonces igual que antes, este bucle va a correr diez veces, lo que significa que esta línea aquí también va a correr diez veces, lo que significa que esa prueba, si imprimimos prueba, será negativa 50. Se restó en cinco, diez veces. Anteriormente, mencioné que el bucle se ejecutará hasta que la condición ya no sea cierta. Y como programador, es tu responsabilidad asegurarte de que cada vez que uses un bucle while, eventualmente terminará. De lo contrario, tu bucle seguirá y seguirá para siempre. Y así como una experiencia de aprendizaje, podemos seguir adelante y probarlo solo para ver qué pasa. Lo que hace que el bucle termine es la línea de lista porque el mensaje sigue creciendo hasta que el mensaje ya no es menor que diez. Entonces, si cambiamos esto a menos uno, bueno, ahora este bucle va a seguir para siempre porque el mensaje siempre será menor a diez. Entonces, si corremos, podemos ver que nos quedamos atascados. Entonces si vas Sí, en realidad se agota el tiempo. Si haces esto en tu propia computadora, ten cuidado, tal vez tengas que forzar el cierre del programa. Pero sí, eso es lo que pasa cada vez que el bucle wile corre para siempre. Simplemente nunca para, y se agota el tiempo. Entonces, antes de que nos olvidemos, volvamos a cambiar esto a plus, y volvemos a la normalidad. Eso sobre cubre bucles wile. Así que pasemos al segundo tipo de bucle, que se llama un bucle de cuatro. Este tipo de bucle es tan útil como el ile, pero es útil para diferentes situaciones. En la programación, notarás que normalmente hay muchas formas de hacer algo, por lo que siempre tendrás opciones cómo vas a resolver problemas. Empecemos por hacer otra vez una nueva variable, y voy a llamarla pepinillo Realmente no importa cómo lo llames. Y lo pondré igual a cero. Y este es el valor que vamos a imprimir, pepinillo. Y después del bucle ile, vamos a iniciar el bucle cuatro. Y así es como se ve. Dices cuatro. Yo es igual a uno, coma tres, uno, do Y luego aquí dentro, hagamos pepinillo es igual a pepinillo más diez Ahora, mirando este código, es un poco menos autoexplicativo en comparación con el bucle ile. Así que vamos a repasarlo poco a poco para que podamos entender mejor lo que está pasando aquí. Esta primera línea especifica tres valores diferentes. Primero, tenemos i es igual a uno. En un bucle de cuatro, esto va a actuar como nuestro iterador, lo que básicamente significa que es un valor que se va a actualizar cada vez que estos cuatro bucles de bucle El siguiente número en la secuencia, este tres es el número al que se acercará nuestro iterador Y una vez que se alcance ese número, el bucle terminará. Y finalmente, este último número es el valor de paso para el bucle. O en otras palabras, es la cantidad que nuestro iterador aumentará cada vez que este bucle Entonces sé que eso fue mucha información de una vez. Entonces déjame repasar lo que sucederá cuando este bucle se ejecute. Se iniciará el bucle. Empiezo a la una. Y nuevamente, este es nuestro iterador. Entonces comienza el bucle, el pepinillo va a aumentar 0-10. Entonces cero más diez es diez. Por lo que ahora el pepinillo es diez. Ahora termina el bucle. Se remonta al inicio. Pero esta vez, yo aumenta por este valor. Entonces yo aumenta de uno más uno es dos. Entonces ahora equivale a dos. Y desde dos, el valor actual de i es menor que este valor, el tres, eso significa que el bucle continuará. Así que vamos a entrar en el bucle una vez más. pepinillo va a aumentar en diez de nuevo, por lo que ahora el pepinillo es Y nuevamente, volvemos al inicio del bucle. Voy a aumentar 2-3. Entonces ahora yo es igual a tres. Ahora que i es igual a este número medio, tres es igual a tres, eso significa que esta es la última iteración del bucle Entonces el pepinillo va a aumentar en 101 veces más, y luego finalmente se hace el loop y se mueve Entonces eso significa esta línea en el medio de aquí, o debería decir que toda esta sección corrió tres veces en total, la una a tres. Entonces podemos ver que el pepinillo después de todo esto debería ser de 30. A su valor nominal, este bucle podría parecer un poco más complicado que el bucle Wile que hicimos antes, ya que hay algunos números más para que podamos hacer un seguimiento Pero una vez que estás acostumbrado, creo que es bastante autoexplicativo. El bucle comenzará en este número, aumentará en este número cada vez hasta que llegue a este número. Entonces es una manera fácil de tener un conjunto predeterminado de bucles. Lo interesante y muy útil que puedes hacer con cuatro bucles es que puedes usar este valor de iterador dentro del propio bucle Por ejemplo, podría aumentar el pepinillo por i. Lo que esto significa es que voy a empezar a la una, así que el pepinillo va a aumentar en uno, luego va a aumentar en dos, y luego va a aumentar Uno más dos más tres es seis. Esta es una forma muy común de usar cuatro bucles porque habrá muchas circunstancias en las que necesitarás este valor de iterador para poder realizar ciertos cálculos 5. Funciones: En programación, es importante recordar que copiar y pegar tu código no es muy buena práctica Si alguna vez encuentras la necesidad copiar una sección de tu código y pegarlo en otro lugar para que ahora haya dos copias del mismo código, deberías considerar usar una función. Una función es una sección de código que define, y luego puede llamar a esa sección de código para que se ejecute en otra parte del programa. Entiendes a lo que me refiero en un momento. Estamos comenzando el código con solo mensaje igual a cero y luego imprimiendo mensaje, que genera cero. Pero después del mensaje, vamos a escribir nuestra primera función. Vamos a decir la palabra clave function, y el nombre de nuestra función será aumentar mensaje. Y luego dentro de esta función, diremos mensaje es igual a mensaje más cinco. Entonces aquí, la palabra clave function indica que lo siguiente es el nombre de nuestra función. Los dos paréntesis son necesarios para indicar que es una función Y luego todo antes de terminar, así que sea lo que sea que esté aquí, esto se va a ejecutar cada vez que se llame a la función. Ahora bien, por defecto, solo porque definimos esta función, eso no significa necesariamente que este código se vaya a ejecutar del bate. Al igual que si hago clic en Ejecutar, veremos que nuestra salida sigue siendo cero. Para que se ejecute este código, necesitamos llamar a la función. Lo que solo significa que escribimos el nombre de la función, aumentamos el mensaje y luego ponemos los dos paréntesis Entonces esto se conoce como llamar a la función, lo que solo significa que cuando escriba esta línea, va a tomar cualquier código que esté dentro de la función y ejecutarlo. Entonces veremos ahora que cuando ejecutemos todo el programa, nuestro valor de mensaje es cinco. Y de igual manera, para demostrarlo, podría copiar esta llamada de función y decir, llamarla dos veces más. Entonces estamos llamando a esta función tres veces en total, lo que significa que este código se va a ejecutar tres veces, lo que al final significa que nuestro mensaje es 15. Vamos a hacer la función un poco más interesante. Cuando estás escribiendo una función, tienes la opción de darle parámetros. Los parámetros son los que van entre paréntesis, algo así como lo que estamos haciendo con esta función de impresión aquí abajo Podríamos cambiarlo para que esta función acepte un parámetro. Vamos a decir que acepta algo llamado Pu, y luego podremos usar este parámetro en la función. Entonces diremos más pu. En lugar de sumar cinco cada vez, va a agregar cualquier valor que pasemos. Entonces cuando llamamos mensaje aumentado, puedo poner aquí cualquier valor que quiera. Puedo decir 99, por ejemplo, cuando corro, conseguimos 99. Pero también puedo llamarlo un mensaje aumentado por segunda vez, pero esta vez, voy a pasar en dos. Y esta vez, es uno oh uno. Llamó a este código dos veces. La primera vez que Fu es igual a 99, y la segunda vez Fu es igual a dos. Aunque en nuestro ejemplo, solo tenemos un parámetro en esta función, eres capaz de poner tantos ahí como quieras, y lo haces poniendo comas entre cada uno Entonces si quería otro llamado Val y otro me llamó, no importa. Los pones a todos en orden. Y luego cuando llamas a la función, pasarías valores adicionales para cada uno de esos parámetros. Entonces así es como se vería eso si quisieras hacerlo de esa manera. Ahora bien, una cosa muy importante que debes saber sobre las funciones es que tienes la opción de devolver un valor. Para explicar lo que esto significa, sigamos adelante y alteremos nuestra función para que devuelva algo. Voy a limpiar un poco este código, así que solo volvemos al único parámetro Pu. Entonces, en lugar de que el mensaje aumente solo por el valor de Fu, hagámoslo para que fu sea igual a fu por dos. Entonces vamos a pasar un valor in, y luego inmediatamente vamos a duplicar ese valor. Y luego volvamos a Fu. Ahora la función se está comportando un poco diferente a lo que era antes Antes dijimos manualmente que el mensaje va a aumentar en Fu, pero ahora solo estamos cambiando Fu y luego regresando Fu. Lo que sucede es que para aplicar realmente esta función al mensaje, diríamos mensaje es igual a aumentar mensaje, y luego pasemos en diez. Lo que va a pasar aquí es este diez se va a pasar en SFU, entonces el fu se va a duplicar, así que diez se va a convertir en 20, y luego va a devolver el nuevo valor de Fu, que, como acabo de decir, es 20 Entonces, cuando algo se devuelve en una función, eso básicamente significa que la llamada a la función se va a reemplazar por el resultado. Entonces como estábamos regresando 20 aquí arriba, básicamente es lo mismo que reemplazarse solo con el resultado. Entonces básicamente es hacer eso. Y pero la belleza de ello es que eres capaz de pasar en el valor que quieras. Y va a tomar esto y aplicarlo. Entonces en este caso, escribí 99, el resultado es 198 Simplemente duplica este valor. Y luego como estamos configurando mensaje igual a este valor devuelto, eso es lo que obtenemos en la impresión. La razón por la que esto es útil es porque ahora si quería aplicar esta función para decir una nueva variable como pollo, La forma en que lo tenía configurado antes donde dije manualmente mensaje dentro de esta función. Eso significaría que sólo se aplicaba a esta variable, y eso es todo. Pero ahora cuando estoy devolviendo algo, puedo usarlo para cualquier variable. Entonces podría decir pollo igual a aumentar mensaje cinco. Y entonces si imprimo pollo, deberíamos ver diez. Algo genial que puedes hacer con las funciones es pasar otras variables como parámetros. Por ejemplo, en la parte superior del programa, hagamos una nueva variable. Yo lo llamaré Mono, y pongámoslo igual a 100. Entonces lo que puedo hacer es poder pasar esta variable mono, digamos dentro de aquí. Así que sólo voy a decir mono. Entonces lo que está pasando es que el valor del mono, que es 100, va a pasar a un mensaje incrementado, y luego se puede aplicar al pollo, lo que resulta en 200. Tener funciones en nuestra correa de herramientas será increíblemente útil a medida que avanza con la programación. Verás con qué frecuencia se deben ejecutar secciones de código en diferentes puntos del programa. Y es mucho más fácil administrar todo cuando el código está en un solo lugar en lugar copiar y pegar en todo el archivo 6. Comentarios: Hasta el momento, todo lo que hemos escrito en nuestro archivo LuA ha sido código Lua Pero con casi todos los lenguajes de programación, hay una opción para que los programadores pongan pequeñas notas que no son tratadas como código, y estas notas se llaman comentarios Por ejemplo, aquí en este código de la lección anterior, tenemos una función que se llama aumentar mensaje. Si estuviera escribiendo un montón de código y tuviera un montón de funciones escritas a lo largo de mis archivos, podría ser difícil hacer un seguimiento de lo que hace cada función. Por lo tanto, es útil escribir comentarios en tu código para ayudarte a recordar. Yo Lua, escribes comentarios escribiendo dah, dah, y luego todo después se considera un comentario Para que pueda escribir mi mensaje duplica un valor y lo devuelve. Entonces, este mensaje aquí es ignorado por el programa, pero me ayuda a mí o a quien esté leyendo mi código. Simplemente te da un poco de contexto extra. Es un pequeño recordatorio. Un truco genial que puedes hacer de vez en cuando se llama comentar algún código Los comentarios son útiles para estos pequeños recordatorios como este, pero también puedes usarlo para deshabilitar ciertas secciones de código Entonces, por ejemplo, si quisiera ver qué pasaría si eliminara completamente esta línea, podría eliminarla, o tal vez solo quiero borrarla temporalmente haciendo d. Ahora esta línea se considera un comentario, y cuando ejecuto el programa, básicamente finge que esta línea no está ahí en absoluto, pero al mismo tiempo, es muy fácil para mí traerla de vuelta También la opción de tratar secciones enteras de código como comentarios. Puedes hacer esto escribiendo, base cuadrada base cuadrada, y luego cuando quieras terminar la sección de comentarios, haces base cuadrada base cuadrada. Todo entre esto y esto se considera un comentario, ninguna de estas líneas aquí va a ser ejecutada. Tener el hábito de comentar tu código es realmente importante Ayuda para tu propia toma de notas, pero si alguien más quiere revisar tu código, comentarios marcan una gran diferencia en entender lo que tú como programador, estabas tratando de hacer cuando lo estabas escribiendo. Leer el código de otras personas puede ser difícil a veces, pero tener comentarios que te guíen en el camino facilita mucho el proceso. 7. Local vs. global: En Lua y muchos otros lenguajes de programación, hay dos tipos de variables, variables globales y variables locales Hasta el momento hemos estado trabajando con globales. Las variables globales son cosas como mensaje. Una vez que lo definas, se puede acceder a él en cualquier lugar a lo largo del programa, y eso es a lo que se refiere Global. Podríamos escribir mensaje en cualquier parte del archivo, y el programa sabría que nos estamos refiriendo a esta variable aquí arriba. Alternativa a una variable global es una variable local. Y todo lo que tienes que hacer para hacer una variable local es agregar esta palabra clave local de antemano. Y como su nombre lo indica, solo se puede acceder a la variable local dentro la misma sección de código en la que se declaró la variable. Entonces, por ejemplo, actualicemos esta función de mensaje de aumento para hacer algo diferente y utilizar una variable local. Voy a hacer una nueva variable local aquí y llamarla VR local. Y voy a ponerla igual a FU. Después en la siguiente línea, voy a hacer VR igual a R dividido por dos. Y luego finalmente, vamos a devolver la realidad virtual. Así que ahora, en lugar de duplicar el mensaje, ahora lo estamos cortando por la mitad porque estamos estableciendo la realidad virtual igual al pasado en valor, cortándola a la mitad y luego regresando la realidad virtual Pero es importante tener en cuenta que la variable VR sólo va a ser utilizada en esta sección de código dentro de la función. Y como ese es el caso, usar local aquí tiene sentido. No queremos que la realidad virtual se utilice en ningún lugar fuera de esta sección de código aquí mismo. Y ahí es donde lo local se vuelve realmente útil es cuando estás administrando tu proyecto. Hay una gran cantidad de variables a lo largo de tu programa. Es más probable que se cometa un error cuando hay muchas globales diferentes, porque si después hiciste una segunda variable y la llamé VR Bueno, puede que no quede claro qué var estamos hablando. Pero si todo es local a su sección relevante de código, no habría ningún error a qué Var se refiere esto, acaso nombraste dos variables con el mismo nombre Entonces este es un hábito en el que te animo mucho a meterte, especialmente con funciones de escritura, diría que este es un escenario muy común donde uso variables locales porque no quiero que estas variables se usen fuera de la función en la que las estoy declarando 8. Tablas: Todo lo que hemos cubierto hasta ahora es muy común en el mundo de la programación. Encontrarás todas estas cosas en prácticamente cualquier idioma. Sin embargo, nuestro siguiente tema son las tablas, y esta es una estructura de datos que es bastante única para Lua Cada idioma va a tener opciones que son similares, pero las tablas en Lua son herramientas únicas, increíblemente poderosas Los usa para almacenar conjuntos de datos relacionados. Y como esos datos están todos almacenados en un mismo lugar, hace que sea mucho más fácil acceder y mantener todo organizado. Se parecen mucho a las variables. Una variable almacena un dato , y eso es todo. Nada más que esa única cosa. Una tabla es capaz de almacenar múltiples piezas de datos en una misma variable, excepto que es una tabla, no una variable. Así que vamos a repasar un ejemplo desde cero sobre cómo utilizar tablas. Voy a empezar con nuestro mensaje típico es igual a cero, y luego estamos imprimiendo mensaje. Después de esta variable de mensaje, hagamos una nueva tabla. Yo lo llamaré Puntajes de prueba. Entonces, cuando creamos una nueva tabla, colocamos igual a llaves En Lua, si alguna vez ves estos rizados, así es como sabes que estamos trabajando con una mesa Y como no hay nada entre las llaves, eso significa que es una mesa vacía Aquí inicializamos los puntajes de las pruebas para que sean una tabla vacía. Para esta demostración, vamos a almacenar un montón de puntajes confeccionados en esta tabla. Para ello, vamos a asignar una puntuación a su propio índice en la tabla. Pasemos por cómo hacer esto. Primero, queremos escribir el nombre de la tabla, los puntajes de las pruebas. Y luego justo después, vamos a poner corchetes. Y luego entre corchetes, vamos a poner un índice. Verás lo que esto significa en un momento. Para comenzar, pondremos en el Índice uno. Y pondré el índice uno en 95, por ejemplo. Y eso es todo. Asignamos nuestro primer puntaje a la tabla de resultados de las pruebas en el índice uno. Ahora podemos pasar al segundo puntaje de prueba. Demos los resultados de las pruebas, y luego dos. Vamos a poner este en 87. Por ahora, pondremos una puntuación de prueba más. Diré que las pruebas puntúan tres, y pondré esta en 98. Entonces en este punto, ahora tenemos una tabla llamada puntuaciones de exámenes, y contiene tres puntajes, uno en cada uno de estos tres índices. Ahora bien, para acceder a esos datos que acabamos de poner, simplemente necesitamos escribir el nombre de la tabla y referirnos a cualquier índice del que estemos hablando Entonces digamos que queremos establecer mensaje igual a los puntajes de las pruebas Índice dos. Entonces esto solo va a agarrar cualquier valor que esté en el índice dos, que es 87, y aquí estamos imprimiendo mensaje, así que deberíamos ver 87. Ten en cuenta que solo asignamos valores al índice uno, índice dos e índice tres. ¿Qué pasaría si intentáramos acceder al Índice cuatro? No pusimos nada ahí. Entonces, ¿qué pasaría? Si establecemos mensaje igual a los puntajes de las pruebas Índice cuatro e intentamos ejecutar esto, en realidad vemos NIL Entonces, cuando no se asigna nada a un índice en particular, en realidad contiene el valor NIL Ahora NIL es una palabra reservada en Lua, que solo representa el significado de la nada Simplemente significa que nada existe aquí mismo en esta posición. Entonces este método que estamos asignando valores a la tabla está bien, pero hay una manera más eficiente hacer exactamente lo mismo Voy a seguir adelante y borrar estas tres líneas. Y en lugar de escribir tres líneas diferentes para esas tareas, podemos volver a subir a esta sección original de Berry rizada y poner esas tres partituras diferentes. Y eso fue 95, 87 y 98. Entonces toda esta línea aquí logra exactamente lo mismo que estábamos haciendo antes con las tres entradas manuales para estas tres puntuaciones En otras palabras, este valor está en el Índice uno, este valor está en el Índice dos, y este valor está en el Índice tres. Y podemos probar esto. adelante y pongamos mensaje al Índice tres de los puntajes de las pruebas, y obtenemos 98, que es este valor. Si bien esta es la forma más fácil poner valores en una tabla, hay otro método para hacer esto que aún es importante pasar. Vamos a rehacer todo esto simplemente haciendo que los puntajes de las pruebas comiencen vacíos, y de manera similar a la forma en que lo hicimos antes, vamos a escribir tres líneas separadas Pero esta vez, vamos a usar esta función llamada table insert. Misma idea desde antes donde escribimos nuestras propias funciones. El lenguaje de programación LuA viene con un montón de funciones escritas para nosotros que podemos usar, y table dot insert es una de ellas. Lo que hace esta función es simplemente tomar un valor y ponerlo en una tabla. La función tiene dos parámetros que tenemos que pasar antes de poder usarla. El primer parámetro es el nombre de la tabla. Entonces, vamos a escribir los puntajes de los exámenes. Ese es el nombre de la tabla en la que queremos insertar. Y el siguiente parámetro es el valor que queremos insertar. Primero pongamos en nuestro puntaje de prueba de 95, y podemos hacer lo mismo. Con las otras dos anotaciones y decir 87 y 98. Ahora bien, el beneficio de esta función de inserción de punto de tabla en comparación con lo que estábamos haciendo antes es que no tenemos que especificar a qué índice queremos que vayan estas puntuaciones. Y te encontrarás con situaciones en las que realidad no sabrás en qué índice estás. Escribirás código que solo diga, pondrás este valor en la tabla. Pero no sabrás en su momento cuántos artículos hay en la tabla o si hay algún hueco. Entonces esta función de inserción cifra todo eso para ti. Sólo una pequeña nota al margen. Al asignar valores a una tabla en LuA, es típico comenzar en el Índice uno, y luego subir desde allí Probablemente sea más común que los idiomas comiencen en el índice cero, pero LuA es uno que comienza en el Índice uno Pero ni siquiera hay que usar números como índice. También puedes usar cuerdas. Se podría decir los resultados de los exámenes, y luego entre corchetes, voy a decir, hola. Y luego pondremos ahí el valor 90. Entonces, al igual que antes, sólo puedo recordar esos mismos datos al pasar en el índice apropiado. Y obtenemos 90. Pero como dije antes, el enfoque de una línea, si ya sabes qué datos van a estar ahí, en este caso, 95 87 y 998, esta es la forma más compacta de hacerlo. Y cuando tienes tablas llenas de datos, como lo hacemos aquí, es importante poder revisar de manera eficiente y fácil todos esos datos para encontrar lo que buscas, hacer algunos cálculos o hacer lo que sea para lo que necesites esa información. Por suerte, para nosotros, Lua nos brinda una opción muy fácil para iterar a través de todas las entradas de la tabla y examinar los datos que contiene Recuerda los cuatro bucles de antes, podemos usarlos de una nueva manera aquí para poder pasar fácilmente por la mesa. Y así es como se hace. Podemos decir cuatro, y yo diré I S en parejas. Y entonces la tabla por la que queremos iterar son los puntajes de las pruebas D. Y luego dentro del bucle cuatro, voy a decir mensaje es igual a mensaje más S. Ahora, este bucle aquí va a pasar por cada elemento de la tabla, y para cada ítem, realizará cualquier código que esté dentro del bucle. Este I se refiere al índice actual en el que está el bucle, y esta S se refiere al valor o los datos que existen en ese índice. En este caso, los puntajes de las pruebas tienen tres puntajes diferentes en él actualmente. Eso quiere decir que este bucle va a circular tres veces diferentes. La primera vez, voy a ser uno, y S va a ser el valor que esté en el Índice uno o 95. Entonces en ese punto, el mensaje va a aumentar en 95. Entonces el loop va a empezar de nuevo. Esta vez voy a ser dos, S va a ser 87 o el valor en el índice dos. Y una vez más, el mensaje va a aumentar. Esto en general sólo va a sumar todos los puntajes juntos y ponerlo en mensaje. Entonces me voy a deshacer de esta línea, y podemos correr y ver que la suma es de 280. Eso es lo que obtenemos si agregas 95 más 87 más 98. Hay una última cosa sobre las mesas por las que me gustaría pasar. Una característica interesante de ellos es que puedes agregarles propiedades, que es básicamente una variable que está ligada directamente a la tabla misma. Sigamos adelante y sumemos uno a los puntajes de esta prueba. Diré puntajes de prueba punto sujeto es igual, y entre comillas matemáticas. Y eso es todo. Ahora podemos obtener esta propiedad simplemente llamándola similar a cualquier otra variable, y deberíamos obtener matemáticas. Esta es una manera conveniente de marcar claramente lo que representa cada dato . Pero en serio, todo lo que esta línea está haciendo son los puntajes de las pruebas, y luego entre corchetes, el sujeto de cadena. Es igual a matemáticas. Estas dos líneas logran lo mismo. Esto es sólo una forma alternativa de hacer esto y viceversa. Esto demuestra realmente lo flexibles que son las tablas, y te permiten ser realmente personalizable con la forma en que se organiza tu código. 9. Para terminar: Tiempo para hablar sobre el proyecto para esta clase. Te voy a dar este código aquí, y quiero que le agregues. Puedes escribir todo este código directamente desde este video, o puedes descargar un archivo LuA sección del proyecto de la clase, y luego copiarlo y pegarlo todo en el mismo navegador de las lecciones anteriores Aquí está el problema. Te doy esta función llamada sumar todos los números. Pero por el momento, no funciona correctamente. Se supone que esta función toma un número, al que llamamos num como parámetro, y necesita sumar todos los enteros entre uno y num Por ejemplo, si pasamos en cuatro, eso significaría que agregaría uno más dos más tres más cuatro, y el resultado sería diez. Entonces establecería ese diez para resultar y devolver resultado. Ahora mismo, sin embargo, cuando corremos, siempre está devolviendo cero, no importa lo que pasemos para esta llamada a la función de números de suma. Lo que tenemos que hacer es arreglar esto para que cualquier valor que pasemos se utilice dentro la función y devuelva una respuesta adecuada. Por cierto, cuando pasamos en 12 para sumar todos los números, debemos esperar que el resultado sea 78. Entonces, al principio, debes apuntar al menos este número sea correcto aquí. Por supuesto, al final, debería poder aceptar cualquier número. La cantidad total de código que tienes que escribir solo debe ser de unas cinco o seis líneas. Para resolver este problema, piense en las lecciones anteriores. Uno de esos temas funciona particularmente bien para este problema. Cuando se te ocurra una solución, asegúrate de tomar una captura de pantalla de tu código aquí y publicarlo en la página del proyecto de la clase. Voy a echarle un vistazo y darle algunos comentarios. Si pasas algún tiempo pensando en este problema y no puedes resolverlo del todo, asegúrate de contactarme, y te daré algunas pistas. Hasta entonces, buena suerte. Después de completar el proyecto, eso concluirá esta clase. Muchas gracias por pasar por este material conmigo. No lo has hecho ya, por favor deja una reseña. Y si disfrutaste de la clase, por favor, la recomiendo. Agradezco mucho el apoyo. futuro, recomiendo profundizar en cada uno de los temas tratados en la clase. Solo arañamos la superficie de lo que Lua tiene para ofrecer. El idioma cuenta con excelente documentación y tutoriales en ua.org Por lo que recomiendo encarecidamente visitar ese sitio. Con todo lo dicho, creo que eso lo cubre todo. Gracias de nuevo por tomar mi clase, y espero verte en la siguiente.