{"id":480,"date":"2017-11-24T08:00:58","date_gmt":"2017-11-24T07:00:58","guid":{"rendered":"http:\/\/www.programaraciegas.net\/?p=480"},"modified":"2017-11-22T23:15:05","modified_gmt":"2017-11-22T22:15:05","slug":"variables-en-swift","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=480","title":{"rendered":"Variables en Swift"},"content":{"rendered":"<p>A la hora de crear un programa o aplicaci&oacute;n inform&aacute;tica necesitamos poder almacenar, manipular, comparar y actualizar informaci&oacute;n. Para todas estas operaciones los lenguajes de programaci&oacute;n utilizan un elemento conocido como <strong>variable<\/strong>. Una variable es una porci&oacute;n de memoria donde el programa almacena un valor indicado por el programador.<\/p>\n<p>Las variables poseen un nombre con el que identificarlas y un tipo. El tipo define qu&eacute; clase de informaci&oacute;n podr&aacute; almacenar la variable. A modo de ejemplo, imaginemos que tenemos diversos productos: agua, zapatos y naranjas y tenemos varios tipos de contenedores: caja de cart&oacute;n, bolsa de pl&aacute;stico y botella de cristal. Cada contenedor es id&oacute;neo para un tipo de elemento concreto y podr&iacute;a ser perjudicial si introduj&eacute;semos un elemento en un contenedor no apropiado como meter agua en la caja de cart&oacute;n o en la bolsa de pl&aacute;stico con alg&uacute;n posible agujero.<\/p>\n<h2>Declarando variables en Swift<\/h2>\n<p>En Swift, al igual que otros muchos lenguajes de programaci&oacute;n necesitamos declarar las variables que vamos a utilizar para que el sistema pueda preparar la memoria del ordenador para almacenar la informaci&oacute;n que va a contener la variable. La forma de declarar una variable en Swift es utilizando la palabra <strong>var<\/strong>. La sintaxis completa es:<\/p>\n<p><code>var nombreDeVariable : tipo = valorInicial<\/code><\/p>\n<p>Ese valor inicial es obligatorio a menos que hagamos que nuestra variable sea de tipo <strong>opcional<\/strong> pero los tipos opcionales implican un concepto un poco complejo que se explicar&aacute; m&aacute;s adelante en otros art&iacute;culos donde tratemos con clases, objetos e instancias.<\/p>\n<p>El tipo de la variable indica qu&eacute; clase de informaci&oacute;n va a almacenar dicha variable: texto, n&uacute;meros decimales, n&uacute;meros enteros, un bot&oacute;n de nuestra interfaz, el dato de un contacto de nuestra agenda o un tipo que hayamos creado nosotros mismos.<\/p>\n<p>Los tipos b&aacute;sicos en Swift son los siguientes:<\/p>\n<dl>\n<dt>String<\/dt>\n<dd>Cadena de texto<\/dd>\n<dt>Int<\/dt>\n<dd>N&uacute;mero entero<\/dd>\n<dt>Float<\/dt>\n<dd>N&uacute;mero decimal<\/dd>\n<dt>Double<\/dt>\n<dd>N&uacute;mero decimal con m&aacute;s de 6 decimales<\/dd>\n<dt>Bool<\/dt>\n<dd>Valor booleano que almacena verdadero o falso<\/dd>\n<\/dl>\n<p>En Swift podemos dejar que el propio lenguaje deduzca el tipo de la variable, es lo que se denomina <em>inferencia<\/em>. Esto lo podemos hacer al declarar la variable y asignarle un valor sin indicar su tipo.<\/p>\n<p><code>var miNombre = \"Fulano de tal\"<\/code><\/p>\n<p>Una vez definido el tipo de una variable no podemos cambiar su tipo posteriormente por lo que hay que tener esto en cuenta a la hora de manipular las variables para cambiar sus valores.<\/p>\n<h2>Constantes en Swift<\/h2>\n<p>Una constante en programaci&oacute;n es una variable que una vez declarada con su valor dicho valor no cambia en ning&uacute;n momento. Ejemplos como el valor del n&uacute;mero PI, la aceleraci&oacute;n de la gravedad en la Tierra o el n&uacute;mero m&aacute;ximo del nivel de vida del personaje jugador del juego que estamos programando son ejemplos de constantes en Swift.<\/p>\n<p>Para declarar una constante se utiliza la palabra <strong>let<\/strong> y la sintaxis es la misma que para una variable.<\/p>\n<p><code>let nombreDeConstante : tipo = valorParaLaConstante<\/code><\/p>\n<p>Tambi&eacute;n podemos utilizar la inferencia a la hora de declarar una constante.<\/p>\n<p><code>let aceleracionGravedad = 9.8<\/code><\/p>\n<p>En Swift, como en otros muchos lenguajes de programaci&oacute;n el s&iacute;mbolo de coma num&eacute;rica se indica con el signo . (punto) esto tanto para Float como Double como otros posibles tipos de n&uacute;meros decimales<\/p>\n<h2>Utilizando variables<\/h2>\n<p>Una vez hemos declarado la variable podemos operar con ella simplemente nombr&aacute;ndola y realizando operaciones con ella. Por ejemplo:<\/p>\n<p>Cambiando su valor:<\/p>\n<p><code><br \/>\nvar miVariable = 3<br \/>\nmiVariable = 5<br \/>\n<\/code><\/p>\n<p>Combinando matematicamente varias variables:<\/p>\n<p><code><br \/>\nvar num1 = 3<br \/>\nvar num 2 = 5<br \/>\nvar num 3 = num1 + num2<br \/>\n<\/code><\/p>\n<p>Modificando una variable a partir de su valor anterior<\/p>\n<p><code><br \/>\nvar num1 = 5<br \/>\nnum1 = num1 + 100<br \/>\n<\/code><\/p>\n<h2>Visualizando el valor de una variable<\/h2>\n<p>Ya vimos en el art&iacute;culo de <a href=\"http:\/\/www.programaraciegas.net\/?p=453\">primeros pasos con Swift<\/a> el comando <strong>print<\/strong>. Por ahora utilizaremos dicho comando para ir viendo los diferentes valores de las variables en nuestros ejemplos.<\/p>\n<p>La funci&oacute;n <strong>print()<\/strong> nos permite mostrar una cadena de texto por la consola de depuraci&oacute;n de xCode. Su sintaxis es muy sencilla:<\/p>\n<p><code>print(variableDeTextoParaMostrar)<\/code><\/p>\n<p>Ahora s&oacute;lo debemos conocer c&oacute;mo poder incluir en una variable de texto el valor de otras variables. La forma es muy sencilla. Recordemos que para poder declarar una cadena de texto debemos encerrar el valor de texto de nuestra variable entre los s&iacute;mbolos de dobles comillas (<em>&quot;<\/em>). por ejemplo:<\/p>\n<p><code><br \/>\nvar miTexto = \"Esto es un texto de prueba\"<br \/>\nprint(miTexto)<br \/>\n<\/code><\/p>\n<p>Si en nuestro <strong>Playground<\/strong> escribiesemos el c&oacute;digo anterior obtendr&iacute;amos el siguiente resultado por la consola de depuraci&oacute;n:<\/p>\n<p><pre>\r\nEsto es un texto de prueba\r\n<\/pre>\n<\/p>\n<p>Para incluir el valor de una variable dentro de una cadena de texto debemos utilizar una <em>secuencia de escape<\/em> que permita a xCode conocer nuestra intenci&oacute;n de insertar en una posici&oacute;n concreta de la cadena de texto el valor de una variable. Esa secuencia de escape consiste en escribir barra invertida seguida de abre par&eacute;ntesis y cierra par&eacute;ntesis (<em>&bsol;()<\/em>). Por ejemplo, veamos el siguiente c&oacute;digo:<\/p>\n<p><code><br \/>\nvar numero = 33<br \/>\nvar texto = \"Diga &bsol;(numero)\"<br \/>\nprint(texto)<br \/>\n<\/code><\/p>\n<h2>Ejercicio de manipulaci&oacute;n de variables<\/h2>\n<p>Vamos a poner en pr&aacute;tica los conocimientos aprendidos hasta ahora y vamos a escribir un c&oacute;digo en nuestro <strong>Playground<\/strong> que realice las siguientes operaciones:<\/p>\n<ul>\n<li>Declarar 3 constantes con 3 valores num&eacute;ricos distintos<\/li>\n<li>Declarar una variable num&eacute;rica para almacenar el resultado de las distintas operaciones<\/li>\n<li>Sumar las dos primeras constantes y mostrar el resultado por consola<\/li>\n<li>Al resultado anterior restarle la tercera constante y mostrarlo por consola<\/li>\n<li>Al resultado anterior multiplicarlo por 100<\/li>\n<\/ul>\n<p>Es muy recomendable que antes de ver la soluci&oacute;n propuesta intent&eacute;is crear vuestro propio c&oacute;digo.<\/p>\n<p>La soluci&oacute;n propuesta es la siguiente:<\/p>\n<p><code><br \/>\nlet num1 : Int = 3<br \/>\nlet num2 : Int = 5<br \/>\nlet num3 : Int = 6<br \/>\nvar resultado = 0<\/p>\n<p>resultado = num1 + num2<br \/>\nprint(\"Operaci\u00f3n 1 = &bsol;(resultado)\")<br \/>\nresultado = num1 + num2 - num3<br \/>\nprint(\"Operaci\u00f3n 2 = &bsol;(resultado)\")<br \/>\nresultado = resultado * 100<br \/>\nprint(\"Operaci\u00f3n 3 = &bsol;(resultado)\")<br \/>\n<\/code><\/p>\n<p>El resultado que saldr&aacute; por consola ser&aacute;:<\/p>\n<p><pre>\r\nOperaci\u00f3n 1 = 8\r\nOperaci\u00f3n 2 = 2\r\nOperaci\u00f3n 3 = 200\r\n<\/pre>\n<\/p>\n<p>Si os fij&aacute;is para las constantes si hemos indicado el tipo pero para la variable de resultado hemos utilizado la inferencia.<\/p>\n<h2>Conclusiones<\/h2>\n<p>En este art&iacute;culo hemos visto:<\/p>\n<ul>\n<li>C&oacute;mo hacen las aplicaciones para almacenar y manipular informaci&oacute;n<\/li>\n<li>Los requisitos de tipo a la hora de manipular informaci&oacute;n con variables<\/li>\n<li>Las diferencias entre variables y constantes<\/li>\n<li>Realizar operaciones matem&aacute;ticas y almacenar los resultados<\/li>\n<li>Introducir el valor de una variable dentro de una cadena de texto<\/li>\n<li>Usar la funci&oacute;n print() para algo m&aacute;s que saludar<\/li>\n<\/ul>\n<p>Es necesario familiarizarse con el uso de variables en Swift si queremos progresar en este lenguaje de programaci&oacute;n por lo que es muy recomendable que hag&aacute;is vuestros propios experimentos y recordad que dentro de un Playground no se romper&aacute; nada en tu ordenador por lo que pod&eacute;is hacer todas las pruebas que quer&aacute;is.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A la hora de crear un programa o aplicaci&oacute;n inform&aacute;tica necesitamos poder almacenar, manipular, comparar y actualizar informaci&oacute;n. Para todas estas operaciones los lenguajes de programaci&oacute;n utilizan un elemento conocido como variable. Una variable es una porci&oacute;n de memoria donde el programa almacena un valor indicado por el programador. Las variables poseen un nombre con &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=480\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abVariables en Swift\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,258],"tags":[269,270,259,268],"class_list":["post-480","post","type-post","status-publish","format-standard","hentry","category-programacion","category-swift","tag-constantes","tag-inferencia","tag-swift","tag-variables"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=480"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/480\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}