Aprende Swift 3

Parámetros mutables explícitos

¡Prueba gratis durante 10 días

nuestros 1220 cursos !

Prueba gratis Mostrar modalidades de suscripción
Este cambio es en realidad una forma más segura de expresar que los parámetros son inmutables y que no se puede modificar al escribir variables dentro de la firma del método. Entonces para tener efectos secundarios necesitamos ser explícitos.

Transcripción

Muy bien, pues ya llegaste al capítulo de novedades en Swift 3. Si eres un programador que ha utilizado Swift 1 o 2 y no te enteraste de cuáles son los cambios, bienvenido, estás en el capítulo correcto. En este capítulo, vamos a revisar cuáles son los cambios más drásticos que ha tenido el lenguaje. Ahora, déjame decirte algo, Swift 3 ha tenido muchísimos cambios. Algunos son de bajo nivel, algunos son cosas muy, muy, profundas que nunca vas a utilizar, pero la mayoría de los cambios más drásticos fueron en la sintaxis. No te preocupes, aquí vamos a revisar la mayoría. Tú no vas a tener problema con tus proyectos, porque recuerda que Xcode tiene una herramienta de migración. Así que, sin problema, tu vas a poder hacer la migración y que tu proyecto siga funcionando. Los temas que vamos a revisar son básicamente para que no tengas problema si en algún momento llegas a tener alguna una migración o no entiendes por qué tu código ya no compila. Lo primero que vamos a revisar es "Parámetros inmutables explícitos". Vamos a hacer aquí un pequeño "playground" para poder demostrar qué es un parámetro inmutable. Lo voy a guardar aquí en el escritorio. Perfecto, esto no lo vamos a ocupar. Lo voy a borrar. Ahora, primero, un parámetro inmutable es cuando tú le pasas a una función, un objeto dentro de los parámetros y esa función se hace cargo de modificar el estado de ese objeto dentro de esa misma función. Va a ser más fácil si te lo explico escrito. Por ejemplo, antes nosotros podíamos hacer una función que recibiera un parámetro con "let param" y el tipo. Y aquí ponemos nuestro código y eramos felices. de esta manera, le decíamos que "param" era inmutable. ¿Por qué? Porque le poníamos el "let". Ahora, si nosotros le poníamos "var", entonces "param" era mutable. Y nosotros éramos muy felices pudiendo cambiar el valor de "param" dentro de la función, pero esto ya tampoco se permite. Ahora, ¿cómo se tiene que hacer ahora? Muy sencillo, lo primero que tengo que hacer es escribir una función normal. "method(param)", el tipo y el código. Dentro de method, voy a hacer algo con "param". "print(param)". Listo. Y lo voy a utilizar. "method[param: 5]" Listo. Si te fijas, ya se ejecutó. El valor es 5 y el parámetro es inmutable. ¿Qué pasa si yo le pongo aquí "param += 1"? Aquí me va a arrojar un error. Y me va a decir: "Oye, el operador que estás utilizando para esta variable "param" no es aceptado porque es inmutable". Y eso es porque, por "default", todos los parámetros de las funciones son inmutables. Esto es para poder hacer que Swift sea un lenguaje más seguro a la hora de correr en múltiples procesadores. Esto tiene que ver mucho con pase por valor, pase por por referencia y programación funcional. El objetivo es que dentro de los múltiples "threads" que tú puedas ejecutar, no estés accediendo a la misma sección de memoria. Supongamos que tú sabes lo que haces y quieres acceder específicamente a ese objeto. Bueno, pues vamos a convertir este método para que pueda recibir un valor mutable. Lo primero que tengo que hacer es... Voy a definir aquí una variable. Vamos a ponerle "n = 5". Y esa variable se la voy a pasar como parámetro. "n". Y, aquí abajo, voy a poner otra vez el valor. Perfecto. Ahora. ¿Qué va a pasar? Aquí yo sigo teniendo este error en donde dice que "param" es inmutable. ¿Cómo lo vuelvo mutable? Muy sencillo. Después de los dos puntos, le voy a poner una anotación que se llama "in out". Y de esta manera, me va a permitir modificar el estado de "param" dentro del "method". Ahora tengo un pequeño problema. No estoy escribiendo completamente bien el nombre de este parámetro. ¿Recuerdas los apuntadores en C? Pues bienvenido. Con esta anotación, yo ya puedo modificar el estado de esta variable. Entonces, "n" va a ser igual a 5. Cuando "method" se ejecuta, lo que hace es que le pasa, digamos, el apuntador o la referencia de esta variable. "Método" puede modificar el valor de "param" e imprimirlo. Y después, fuera de la función ya es un nuevo estado. Esto es muy importante. Casi no lo vas a ocupar, no te preocupes. Pero lo que sí es importante para ti saber es que tú puedes estar haciendo cambio de parámetros solamente si lo expresas con las anotaciones adecuadas. Por "default", recuerda, todos los parámetros son inmutables y no te recomiendo que hagas esto. Pero si en alguna parte de tu proyecto o en alguna librería lo tiene, ya sabes cómo arreglarlo.

Aprende Swift 3

Descubre Swift 3, la versión más actual del lenguaje de Apple; conoce todas sus novedades y aprende el lenguaje de código abierto desde cero para desarrollar tus aplicaciones.

3:14 horas (31 Videos)
Actualmente no hay comentarios.
 

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.