Publicado el 7 de Septiembre del 2018
521 visualizaciones desde el 7 de Septiembre del 2018
1,1 MB
37 paginas
II. Aspectos
Esenciales de Swift
Aspectos esenciales de Swift
Tipos básicos
• Utilice let para utilizar una constante y var para utilizar una variable.
• Todas las constantes y variables en Swift tienen tipo, pero no es
necesario especificarlo. Al proporcionar un valor al momento de la
creación, se permite al compilador inferir el tipo.
Aspectos esenciales de Swift
Tipos básicos
• Si el valor inicial no provee suficiente información (o si
no hay valor inicial), especifique el tipo escribiéndolo
después de la variable, separado por dos puntos (:).
Aspectos esenciales de Swift
Tipos básicos
• Los valores nunca se convierten a otro tipo de manera
implícita. Si necesita convertir un valor a un diferente tipo,
debe hacer una instancia del tipo deseado explícitamente.
Aspectos esenciales de Swift
Tipos básicos
• Hay una manera más simple de incluir valores en una cadena:
Escriba el valor entre paréntesis y anteponga una barra (\).
• A esto se le llama interpolación de cadena (string interpolation).
Aspectos esenciales de Swift
Tipos básicos
• Utilice opcionales para trabajar con valores que pueden ser omitidos.
• Un valor opcional contiene un valor o contiene nil para indicar que el valor se omitió.
• Para marcar un valor como opcional se coloca un signo de interrogación (?)
después del tipo.
• Para obtener el valor de un opcional, se desenvuelve utilizando el operador de
desenvoltura (!).
Aspectos esenciales de Swift
Tipos básicos
• Los opcionales son pervasivos en Swift, y son muy útiles
en situaciones donde un valor puede o no estar
presente. Por ejemplo en la conversión de tipos.
Aspectos esenciales de Swift
Tipos básicos
• Un opcional implícitamente desenvuelto es un opcional que también puede ser
utilizado como un valor no opcional, sin necesidad de desenvolver su valor cada
vez que se accede.
• Es muy rara la necesidad de crear un opcional implícitamente desenvuelto en tu
propio código. Más bien, se utilizan para rastrear la conexión entre la interfaz de
usuario y el código fuente.
Aspectos esenciales de Swift
Tipos básicos
• Un arreglo es un tipo de dato que sigue la pista a una colección de elementos
ordenados.
• Para crear un arreglo se utilizan los corchetes ([]) y se accede a sus elementos
escribiendo el índice dentro de los corchetes.
• Para crear un arreglo vacío, se utiliza la sintaxis de inicializador.
Aspectos esenciales de Swift
Flujo de control
• Swift tiene 2 tipos de enunciados para el flujo de control.
• Los enunciados condicionales, como if y switch, verifican si una condición es
verdadera (valor Boolean true) antes de ejecutar una pieza de código.
• Los ciclos, como for-in y while, ejecutan la misma pieza de código muchas
veces.
Aspectos esenciales de Swift
Flujo de control
• Los enunciados pueden anidarse para crear
comportamiento más complejo en el programa.
Aspectos esenciales de Swift
Flujo de control
• Utilice atado opcional (optional binding) en un enunciado if
para verificar si un opcional contiene un valor.
• Si el valor opcional es nil, el condicional es falso y se saltará
el código entre llaves. De otra manera, el valor opcional será
desenvuelto y asignado.
Aspectos esenciales de Swift
Flujo de control
• Se puede utilizar un sólo enunciado if para atar varios valores.
• El enunciado if se ejecuta solamente si todos los atados son exitosos.
• Se puede agregar una clausula where para detallar más el
condicional.
Aspectos esenciales de Swift
Flujo de control
• Un enunciado switch permite utilizar cualquier tipo de dato y una
variedad de operaciones de comparación. En el ejemplo, el switch
conmuta entre los valores de la cadena, comparando el valor con
cada caso y ejecutando el correspondiente.
Aspectos esenciales de Swift
Flujo de control
• Se puede mantener un índice en un ciclo utilizando un rango.
• Se puede utilizar el operador de rango medio abierto (..<) o el operador de
rango cerrado (…).
• En el operador de rango medio abierto, no se considera el último número.
• El guión (_) se utiliza como un comodín cuando no importa saber en que
índice del ciclo se encuentra.
Aspectos esenciales de Swift
Funciones y métodos
• Un función es una pieza de código reutilizable, con un nombre que puede ser
referida desde cualquier parte de un programa.
• Utilice func para declarar una función.
• La declaración de una función puede incluir cero o más parámetros, escritos
como nombre: Tipo.
• Opcionalmente, una función puede tener un tipo de retorno, escrito después
de ->, lo cual indica lo que la función regresa como resultado.
• La implementación de la función va dentro de un par de llaves ({}).
Aspectos esenciales de Swift
Funciones y métodos
• Invoque una función escribiendo su nombre con una
lista de argumentos entre paréntesis.
• Al invocar una función, se pasa el valor del primer
argumento sin su nombre y cada valor subsecuente
con su nombre.
Aspectos esenciales de Swift
Funciones y métodos
• Como se puede notar, para invocar un método se utiliza
la sintaxis del punto.
• Al invocar un método, se pasa el valor del primer
argumento sin su nombre y cada valor subsecuente con
su nombre.
Aspectos esenciales de Swift
Clases e inicializadores
• En la programación orientada a objetos, el comportamiento de un programa se
basa en interacciones entre objetos. Un objeto es una instancia de una clase.
• Las clases almacenan información adicional a cerca de ellas como
propiedades y definen su comportamiento como métodos.
• Utilice la palabra class seguida del nombre de la clases para definir una clase.
• Las propiedades se declaran igual que las variables o constantes y los métodos
se declaran igual que las funciones.
Aspectos esenciales de Swift
Clases e inicializadores
• Para crea una instancia de una clase (un objeto) se deben
colocar paréntesis después del nombre de la clase.
• Utilice la sintaxis de punto para acceder a las propiedades
y métodos de la instancia.
Aspectos esenciales de Swift
Clases e inicializadores
• La clase Shape carece de una cosa importante: un inicializador.
• Un inicializador es un método que prepara la instancia de la clase para su
uso, lo cual involucra asignar un valor inicial a cada propiedad y algunos
otros ajustes iniciales.
Aspectos esenciales de Swift
Clases e inicializadores
• La palabra self se utiliza para distinguir las propiedades de los argumentos del
inicializador.
• Cada propiedad necesita tener un valor asignado, ya sea en su declaración o en
el inicializador.
• Para invocar un inicializador no se escribe init, se invoca colocando paréntesis
con los argumentos apropiados después del nombre de la clase.
Aspectos esenciales de Swift
Clases e inicializadores
• Las clases heredan su
comportamiento de sus clases
padre.
• Una clase que hereda
comportamiento de otra clase se
llama subclase de esa clase y la
clase padre se llama superclase.
• Las subclases incluyen el nombre de
su superclase después de su
nombre, separado por dos puntos.
• Una clase puede heredar de sólo
una superclase, pero esa superclase
puede heredar de otra, formando
una jerarquía de clases.
• Los métodos de una subclase que
sobreescriben métodos de la
superclase se deben marcar con la
palabra override.
Aspectos esenciales de Swift
Clases e inicializadores
• Note que el inicializador para la clase Square tiene 3 pasos:
• Asignación de valores a las propiedades que declara la
subclase (Square).
• Invocación al inicializador de la superclase.
• Cambio de los valores de las propiedades definidas en la
superclase (NamedShape).
Aspectos esenciales de Swift
Clases e inicializadores
• Algunas veces la
inicialización de un objeto
debe fallar, por ejemplo
cuando los valores provistos
como argumentos están fuera
de cierto rango, o cuando
faltan datos.
• Los inicializadores que
pueden fallar al inicializar un
objeto se llaman
inicializadores fallables
(failable initializer) y pueden
regresar nil después de la
inicialización.
• Utilice init? para declarar un
inicializador fallable.
Aspectos esenciales de Swift
Clases e inicializadores
• Los inicializadores pueden tener un número de palabras asociadas.
• Un inicializador designado no requiere ninguna palabra. Este
inicializador actúa como uno de los inicializadores primarios de una
clase.
• La palabra convenience después de un inicializador indica que es un
inicializador de conveniencia, el cual es un inicializador secundario
que pude agregar comportamiento adicional o personalización, pero
enventualmente debe invocar a un inicializador designado.
• La palabra required después de un inicializador indica que cualquier
subclase debe implementar su propia versión del inicializador.
Aspectos esenciales de Swift
Clases e inicializadores
• La conversión de tipos (type cast) es una manera de verificar el tipo de una
instancia y tratarla se manera distinta dependiendo de su lugar en la jerarquía
de clases.
• Una constante o variable de una cierta clase puede referirse a una instancia de
una subclase. cuando se crea que este es el caso, se puede tratar de convertir
a la subclase (downcast) a través del operador de conversión de tipos.
• Dado que la conversión puede fallar, el operador de conversión de tipos viene
en 2 formas. La forma opcional as? y la forma forzada as!.
• Utilice el operador de conversión de tipos opcional (as?) cuando no esté seguro
si la conversión será exitosa.
• Utilice el operador de conversión de tipos forzada (as!) cuando esté seguro que
la conversión será exitosa.
Aspectos esenciales de Swift
Clases e inicializadores
• El ejemplo muestra el
uso del operador de
conversión de tipos
opcional (as?) para
verificar si una figura
(Shape) en un arreglo
de figuras es un
cuadrado (Square) o
triángulo (
Comentarios de: II. Aspectos Esenciales de Swift (0)
No hay comentarios