Tutorial Swift.pdf
(
1059 KB
)
Pobierz
Lenguajes de programaci´n
o
Taller Swift
2016 - 2
Tutorial Swift
Nicol´s Larra˜aga Cifuentes
a
n
Liseth Brice˜o Albarrac´
n
ın
Angela Mar´ Mu˜oz Medina
ıa
n
8 de noviembre de 2016
´
Indice
1. Instalaci´n
o
1.1. OSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1. Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Primeros pasos con swift
2.1. Operadores basicos . . . . . . . . . .
2.2. Caracteres y String . . . . . . . . . .
2.3. Literales . . . . . . . . . . . . . . . .
2.3.1. Inicializacion de String vacio
2.3.2. Mutabilidad . . . . . . . . . .
2.3.3. Tipo de valor . . . . . . . . .
2.3.4. Trabajando con caractares . .
2.3.5. Interpolacion de String . . . .
2.3.6. Comparacion de String . . .
3
3
3
4
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
10
10
10
11
11
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3. Colecciones
3.1. Arrays . . . . . . . . . . . . . . . . . . . . . .
3.1.1. Inicializacion de Array . . . . . . . . .
3.1.2. Metodo a˜adir, borrar, modificar . . .
n
3.2. Diccionarios . . . . . . . . . . . . . . . . . . .
3.2.1. Inicializacion de un diccionario . . . .
3.2.2. Metodo a˜adir, borrar, modificar . . .
n
3.3. Set . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1. Inicializacion de un Set . . . . . . . .
3.3.2. Hash Values para tipos Set . . . . . .
3.3.3. Metodo a˜adir, borrar, modificar . . .
n
3.3.4. Metodos y operaciones fundamentales
3.3.5. Parentesco o igualdad . . . . . . . . .
4. Control de Flujo
4.1. For in . . . .
4.2. For . . . . .
4.3. while . . . .
4.4. Do- while . .
4.5. If . . . . . .
4.6. Switch . . . .
4.7. Tuplas . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Tutorial Swift
Universidad Nacional De Colombia - Lenguajes de programaci´n
o
5. Funciones
5.1. Definicion y llamado de funciones
5.2. Funcion con parametros . . . . .
5.3. Funcion sin parametros . . . . .
5.4. Funcion que no retorna valor . .
5.5. Funcion que retorna valor . . . .
5.6. Nombres internos y externos . . .
5.7. parametros constantes y variables
5.8. Funciones como tipos . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
13
13
13
13
14
14
14
14
15
15
15
16
16
16
17
6. Clases y estructuras
6.1. Clases . . . . . . . . . . . . . . . .
6.1.1. Declaraci´n e instanciaci´n
o
o
6.1.2. Propiedades de acceso . . .
6.1.3. Los operadores de identidad
6.1.4. Control de acceso . . . . . .
6.1.5. Herencia . . . . . . . . . . .
6.2. Estructuras . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7. Tipos de valor y de referencia
18
7.1. Tipos de valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2. Tipos de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8. Caracter´
ısticas de Swift
18
8.1. Closures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8.1.1. Sintaxis Closures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.2. ARC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9. Ejemplos
20
9.1. facil - factorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.2. intermedio - merge sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.3. avanzado - segment tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Tutorial Swift
Universidad Nacional De Colombia - Lenguajes de programaci´n
o
1.
Instalaci´n
o
Swift es soportado principalmente en el sistema operativo de OSX (dispositivos apple), tambi´n cuenta
e
con un compilador en linux; sin embargo para windows no existen compiladores oficiales actualmente, por lo
que es necesario utilizar un compilador en linea (desarrollado por IBM).
1.1.
OSX
Al ser creado por Apple para desarrollar apps de iOS, Mac, Apple TV y Apple Watch, solo se necesita
descargar un IDE para codificar, dise˜ar y probar. Para esto usaremos Xcode 8 que es la ultima version
n
estable, cabe resaltar que versiones anteriores a Xcode 6.4 no soportan swift.
1.1.1.
Xcode
El ultimo sistema operativo para Mac llamado MacOS 10.12 Sierra permite la facil instalacion de Xcode
mediante los siguientes pasos:
1. Entrar a la App Store y buscar Xcode
2. Dar clic en obtener y luego en instalar (ver figura 1)
3. Esperar, Xcode tiene un tama˜o de 4.63GB (ver figura 2)
n
4. Buscar la aplicacion instalada en Launchpad (ver figura 3)
5. Aceptar terminos e instalar Xcode (ver figura 4)
Figura 1:
Figura 2:
Tutorial Swift
Universidad Nacional De Colombia - Lenguajes de programaci´n
o
Figura 3:
Figura 4:
1.2.
Windows
Como fue descrito anteriormente, windows no cuenta con un compilador oficial de swift, sin embargo para
los fines de este tutorial es suficiente utilizar un compilador (playground) en linea, desarrollado por IBM,
para ello entrar a
https://swiftlang.ng.bluemix.net/#/repl.
Tutorial Swift
Universidad Nacional De Colombia - Lenguajes de programaci´n
o
Figura 5:
2.
2.1.
Primeros pasos con swift
Operadores basicos
A continuaci´n se presentan los operadores de los que dispone swift:
o
Asignacion =
Aritmeticos +,-,*,/
Residuo %
Incremento- Decremento ++,–
Comparacion ==, !=,>,<,<=,>=
Identidad == , !=== (tener en cuenta que ambos operadores son diferentes en su implementaci´n, ver
o
secci´n 9.3
o
Rango a..¡b a..b
Logicos !, &&,
||
2.2.
Caracteres y String
La sintaxis para la manipulacion y creacion de cadenas es similar a C, la concatenacion de cadenas se
realiza con el operador + y ademas de ello se encuentra la mutabilidad de la cadena que es administrado
entre por la eleccion entre una constante , variables, literales y expresiones en cadenas mas largas,en un
proceso denominado interpolacion de cadenas, lo cual facilita la visualizacion e impresi´n.
o
A pesar de la sintaxis, en Swift el tipo String es una aplicacion de cadena rapida y sencilla. Cada cadena
compone de caractares Unicode independimiente de la codificacion y proporciona soporte para acceder a
diversas representaciones Unicode
Plik z chomika:
mmstojka
Inne pliki z tego folderu:
Конспектирование учебников по iOS(1).rar
(855 KB)
иОС разработка Курс(1).rar
(2773 KB)
Audio to 29_06_2016.m3u
(25 KB)
iOS 13 PFSMN — копия Перейменовать с дуб на епуб.dub.epub
(4861 KB)
iOS 13 PFSMN.epub
(4861 KB)
Inne foldery tego chomika:
Astronomie
Biologie Zoologie Anatomie Fiziologie
Chemie
Evoluce
Filosofie Logika Sociologie
Zgłoś jeśli
naruszono regulamin