Swift es un nuevo lenguaje de programacin para iOS y OS X de
desarrollo de aplicaciones. No obstante, muchas partes de Swift
estarn familiariadas desde su e!periencia en el desarrollo en " y Objective#". Swift proporciona sus propias versiones de todos los tipos " fundamental y Objective#", incluyendo $nt. para enteros% &oble y flotador para los valores de punto flotante% 'ool para valores booleanos% y de cadena para los datos te!tuales. Swift tambi(n ofrece versiones potentes de los dos tipos de recoleccin primaria, matri y &iccionario, como se describe en )ipos de coleccin. *l igual +ue ", Swift utilia variables para almacenar y hacer referencia a los valores por un nombre de identificacin. Swift tambi(n hace un amplio uso de variables cuyos valores no se pueden cambiar. ,stos son conocidos como constantes, y son mucho ms poderosos +ue las constantes en ". -as constantes se utilian a lo largo Swift para +ue el cdigo ms seguro y ms claro en la intencin cuando se trabaja con valores +ue no deben cambiar. *dems de los tipos conocidos, Swift introduce tipos avanados +ue no se encuentran en Objective#". ,stos incluyen tuplas, +ue le permiten crear y pasar alrededor de grupos de valores. -as tuplas pueden devolver m.ltiples valores desde una funcin como un valor .nico compuesto. Swift tambi(n introduce tipos opcionales, +ue se encargan de la ausencia de un valor. Opcionales dicen bien /no es un valor, y es igual a !/ o /no es un valor en absoluto./ Opcionales son similares al uso de nil con punteros en Objective#", pero funcionan para cual+uier tipo, no slo a las clases. Opcionales son ms seguros y ms e!presivos +ue los punteros nulos en Objective#" y estn en el coran de muchas de las caracter0sticas ms poderosas de Swift. Opcionales es un ejemplo del hecho de +ue Swift es un lenguaje de tipo seguro. Swift ayuda a ser claro acerca de los tipos de valores +ue el cdigo puede trabajar. Si parte de su cdigo espera una cadena, la seguridad de tipos le impide pasarlo un $nt por error. ,sto le permite capturar y corregir los errores lo antes posible en el proceso de desarrollo. "onstantes y variables "onstantes y variables asocian un nombre 1como ma!imumNumberOf-ogin*ttempts o 2elcome3essage4 con un valor de un tipo en particular 1como el n.mero 56 o la cadena /7ello/4. ,l valor de una constante no se puede cambiar una ve +ue se establece, mientras +ue una variable se puede establecer en un valor diferente en el futuro. # &eclaracin de constantes y variables "onstantes y variables deben ser declaradas antes de ser utiliadas. 8sted declara constantes con la palabra clave let y las variables con la palabra clave var. 7e a+u0 un ejemplo de cmo las constantes y las variables se pueden utiliar para realiar el seguimiento del n.mero de intentos de inicio de sesin de un usuario ha hecho9 Este cdigo se puede leer como: "&eclarar una nueva constante llamada ma!imumNumberOf-ogin*ttempts, y darle un valor de 56. ,ntonces, declare una nueva variable llamada current-ogin*ttempt, y darle un valor inicial de 6." ,n este ejemplo, el n.mero m!imo de intentos de inicio de sesin permitidos se declara como una constante, debido a +ue el valor m!imo nunca cambia. ,l contador de inicio de sesin actual intento se declara como una variable, ya +ue este valor debe ser incrementado despu(s de cada intento fallido de login. Se pueden declarar varias constantes o variables m.ltiples en una sola l0nea, separados por comas9 # ,scriba anotaciones :uede proporcionar una anotacin de tipo cuando se declara una constante o variable, para ser claros sobre el tipo de valores +ue la tienda puede constante o variable. ,scribe una anotacin de tipo mediante la colocacin de dos puntos despu(s del nombre de la constante o variable, seguido por un espacio, seguido por el nombre del tipo de usar. ,ste ejemplo proporciona una anotacin de tipo para una variable denominada 2elcome3essage, para indicar +ue la variable puede almacenar valores de cadena9 -os dos puntos en la declaracin significa /... del tipo .../, por lo +ue el cdigo anterior se puede leer como9 /&eclarar una variable llamada 2elcome3essage +ue es de tipo String./ -a frase /de tipo String/ significa /puede almacenar cual+uier valor de cadena./ :iense en ello como +ue significa /el tipo de cosas/ 1o /el tipo de cosas/4 +ue se puede almacenar. -a variable 2elcome3essage ahora se puede establecer en cual+uier valor de cadena sin error9 # "onstantes de denominacin y ;ariables 8sted puede utiliar casi cual+uier carcter en el +ue +uieres constantes y variables nombres, incluyendo los caracteres 8nicode9 -os nombres de constantes y variables no pueden contener s0mbolos matemticos, flechas, de uso privado 1o no vlidos4 los puntos de cdigo 8nicode, o#y la l0nea de caracteres de cuadro de dibujo. )ampoco pueden comenar con un n.mero, aun+ue las cifras pueden ser incluidos en otro lugar dentro del nombre. 8na ve +ue se ha declarado una constante o variable de un cierto tipo, no se puede redeclare de nuevo con el mismo nombre, o cambiarlo para almacenar valores de un tipo diferente. )ampoco se puede cambiar una constante en una variable o una variable en una constante. 8sted puede cambiar el valor de una variable e!istente a otro valor de un tipo compatible. ,n este ejemplo, el valor de friendly2elcome se cambia de /7ello</ a /'onjour</9 * diferencia de una variable, el valor de una constante no se puede cambiar una ve +ue se establece. Si lo intenta, se reporta como un error cuando se compila el cdigo9 # :rinting "onstants and ;ariables :uede imprimir el valor actual de una constante o variable con la funcin println9 println es una funcin global +ue imprime un valor, seguido por un salto de l0nea, a una salida apropiada. Si est trabajando en Xcode, por ejemplo, println imprime su salida en el panel de /consola/ de Xcode. 18na segunda funcin, la impresin, realia la misma tarea sin ane!ar un salto de l0nea al final del valor +ue desea imprimir.4 -a funcin println imprime cual+uier valor de cadena se pasa a la misma9 -a funcin println puede imprimir mensajes de registro ms complejos, de una forma similar a la funcin NS-og. ,stos mensajes pueden incluir los valores actuales de constantes y variables. Swift utilia interpolacin de cadenas para incluir el nombre de una constante o variable como un marcador de posicin en una cadena ms larga, ya una pronta Swift sustituirlo por el valor actual de esa variable constante o. ,nvuelva el nombre entre par(ntesis y escapar con una barra invertida antes del par(ntesis de apertura9 "omentarios 1"O33,N)S="O33,N)4 8se los comments para incluir te!to no ejecutable en su cdigo, como una nota o un recordatorio a s0 mismo. -os comments son ignorados por el compilador Swift cuando se compila el cdigo. -os comentarios en Swift son muy similares a los comentarios en ". sola l0nea comentarios empiean por dos barras inclinadas 1= =49 )ambi(n puede escribir comments de varias l0neas, +ue comienan con una barra inclinada seguida por un asterisco 1= >4 y terminan con un asterisco seguido de una barra diagonal 1> =49 * diferencia de los comments de varias l0neas en ", comentarios de varias l0neas en Swift se pueden anidar dentro de otros comentarios de varias l0neas. ). escribes comments anidados iniciando un blo+ue de comments de varias l0neas y luego iniciar un segundo comment de varias l0neas en el primer blo+ue. ,l segundo blo+ue se cierra entonces, seguido por el primer blo+ue9 "omments de varias l0neas anidadas le permiten comment grandes blo+ues de cdigo de forma rpida y sencilla, incluso si el cdigo ya contiene comentarios de varias l0neas.