Está en la página 1de 15

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
,ste cdigo se puede leer como9
"&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 /... de 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.
:unto y coma
* diferencia de muchos otros idiomas, Swift no re+uiere +ue usted
escriba un punto y coma 1%4 despu(s de cada sentencia en el cdigo,
aun+ue puede hacerlo si lo desea. Se re+uieren puntos y comas, sin
embargo, si desea escribir varias instrucciones separadas en una sola
l0nea9
,nteros
-os enteros son n.meros enteros sin componente fraccionario, como
?@ y #@A. ,nteros bien estn firmadas 1positivo, cero o negativo4 o sin
signo 1positivo o cero4.
Swift proporciona enteros con signo y sin signo de B, 5C, A@, y C?
formas bits. ,stos n.meros enteros siguen una convencin de
nomenclatura similar a ", en +ue un entero sin signo de B bits es de
tipo 8intB, y un entero con signo de A@ bits es de tipo $ntA@. *l igual
+ue todos los tipos de Swift, estos tipos enteros han capitaliado
nombres.
# -imites de enteros
Puede acceder a los valores mnimos y mximos de cada tipo de entero con
sus propiedades max y min:
-os valores de estas propiedades son del tipo de n.mero de tamaDo
apropiado 1tales como 8intB en el ejemplo anterior4 y por lo tanto se
pueden utiliar en e!presiones junto a otros valores del mismo tipo.
# $nt
,n la mayor0a de los casos, usted no tiene +ue elegir un tamaDo
espec0fico de n.mero entero a utiliar en el cdigo. Swift ofrece un
tipo entero adicional, $nt, +ue tiene el mismo tamaDo +ue el tamaDo
de la plataforma actual palabra nativa9
En una plataforma de 32 bits, Int. es del mismo tamao que
Int32.
En una plataforma de 64 bits, Int es del mismo tamao
que Int64.
* menos +ue necesite trabajar con un tamaDo espec0fico de n.mero
entero, utilice siempre $nt. para valores enteros en el cdigo. ,sto
ayuda cdigo de la coherencia y la interoperabilidad. $ncluso en las
plataformas de A@ bits, el $N) puede almacenar cual+uier valor entre
#@5?E?BAC?B y @5?E?BAC?E, y es lo suficientemente grande para
muchos rangos enteros.
# 8$nt
Swift tambi(n proporciona un tipo entero sin signo, 8$nt, +ue tiene el
mismo tamaDo +ue el tamaDo de la palabra nativa de la plataforma
actual9
En una plataforma de 32 bits, UINT es del mismo tamao
que UInt32.
En una plataforma de 64 bits, UInt es del mismo tamao que
UInt64.
N.meros de punto flotante
N.meros de punto flotante son n.meros con un componente
fraccional, como A.5?5FG, 6.5, y #@EA.5F.
)ipos de coma flotante pueden representar una gama mucho ms
amplia de valores +ue los tipos enteros, y pueden almacenar n.meros
+ue son mucho ms grandes o ms pe+ueDos +ue se puede
almacenar en un $nt. Swift proporciona dos tipos de n.meros de
punto flotante firmados9
Doble representa un nmero de punto flotante de 64 bits.
salo !uando los "alores de punto flotante deben ser mu#
$randes o parti!ularmente pre!isa.
%loat representa un nmero de punto flotante de 32 bits.
salo !uando los "alores de punto flotante no requieren
pre!isi&n de 64 bits.
Seguridad de tipos y la inferencia de tipos
Swift es un lenguaje de tipo seguro. 8n lenguaje de tipo seguro +ue
te anima a ser claro acerca de los tipos de valores +ue el cdigo
puede trabajar. Si parte de su cdigo espera una cadena, no se
puede pasar un $nt por error.
:or+ue Swift es tipo de seguro se realia comprobaciones de tipo
cuando se compila el cdigo y banderas de cual+uier tipo no coinciden
como errores ,sto le permite capturar y corregir los errores lo antes
posible en el proceso de desarrollo. )ipo de comprobacin le ayuda a
evitar errores cuando se trabaja con diferentes tipos de valores. Sin
embargo, esto no significa +ue usted tiene +ue especificar el tipo de
cada constante y variable +ue se declara. Si no se especifica el tipo
de valor +ue necesita, Swift utilia la inferencia de tipos para calcular
el tipo apropiado. -a inferencia de tipos permite al compilador deducir
el tipo de una e!presin concreta de forma automtica cuando se
compila el cdigo, simplemente mediante el e!amen de los valores
suministrados por el usuario.
&ebido a la inferencia de tipos, Swift re+uiere muchos menos
declaraciones de tipos +ue lenguajes como " o Objective#".
"onstantes y variables todav0a se escriben de forma e!pl0cita, pero
gran parte del trabajo de especificar su tipo est hecho para usted.
-a inferencia de tipos es particularmente .til cuando se declara una
constante o variable con un valor inicial. ,sto se suele hacer
mediante la asignacin de un valor literal 1o literal4 a la constante o
variable en el punto +ue se declara. 18n valor literal es un valor +ue
aparece directamente en el cdigo fuente, como ?@ y A,5?5FG en los
ejemplos a continuacin.4
:or ejemplo, si se asigna un valor literal de ?@ a una nueva constante
falta decir de +u( tipo es, Swift infiere +ue desea +ue la constante
para ser un fd, por+ue usted ha inicialiado con un n.mero +ue se
parece a un entero9
&el mismo modo, si no se especifica un tipo de punto flotante literal,
Swift infiere +ue desea crear un doble9
Swift siempre elige doble 1en lugar de Hloat4 cuando inferir el tipo de
n.meros de punto flotante.
Si se combinan enteros y literales de punto flotante en una e!presin,
un tipo de doble ser inferido a partir del conte!to9
,l valor literal de A no tiene ning.n tipo e!pl0cito en y de s0 mismo, y
por lo tanto un tipo de salida apropiado de &oble se infiere de la
presencia de un literal de coma flotante como parte de la adicin
-os literales num(ricos
-os literales enteros se pueden escribir como9
Un nmero de!imal, sin prefi'o
Un nmero binario, !on un prefi'o (b
Un nmero o!tal, !on un prefi'o (o
Un nmero )e*ade!imal !on el prefi'o (*
)odos estos literales enteros tienen un valor decimal de 5E9
-iterales de punto flotante pueden ser decimal 1con sin prefijo4 o
he!adecimal 1con un prefijo 6 !4. Siempre deben tener un n.mero 1o
n.mero he!adecimal4 en ambos lados del punto decimal. )ambi(n
pueden tener un e!ponente opcional, indicado por una e may.scula o
min.scula de flotadores decimales o un p may.scula o min.scula de
flotadores he!adecimales.
:ara los n.meros decimales con un e!ponente de e!p, el n.mero base
se multiplica por 56e!p9
+i$nifi!a ,.2-e2 ,,2- . ,(2, o ,2-,(.
,,2- E/2 si$nifi!a ,,2- . ,(/2, o (,(,2-.
:ara los n.meros he!adecimales con un e!ponente de e!p, el n.mero
base se multiplica por @e!p
(*%p2 si$nifi!a ,- . 22 o 6(.(.
(*%p/2 si$nifi!a ,- . 2/2, o 3,0-
)odos estos literales de punto flotante tienen un valor decimal de
5@.5BEF9
-os literales num(ricos pueden contener formato e!tra para +ue sean
ms fciles de leer. *mbos n.meros enteros y flotadores pueden ser
rellenados con ceros adicionales y pueden contener guiones para
ayudar con la lectura. Ning.n tipo de formato afecta el valor
subyacente de la literal9

También podría gustarte