====== Introducción a swift ====== Librerías básicas Import Foundation ===== Opcionalidad ===== Una variable puede ser opcional, no tiene valor. var optionalString = "Hello" print(optionalString == nil)//Esto sería un False var optionalName: String? = "patata" var greeting = "Hola" if let name = optionalName{ greeting = "Hola, \(name)" } Podemos lidiar con los valores nulos utilizando doble interrogación: let nickname: String? = nil let fulname = "patata" //con la doble interrogación indicamos que si nickname es null, se muestra fulname en su lugar let informalGreeting = "Hola \(nickname ?? fulname)" print(informalGreeting) ===== Switches ===== let vegetable = "pepper" switch vegetable { case "celery": print("Me da que esto no es, pero a saber") case "cucumber", "Watercress": Print("Esto le da miedo a youtube") case ket x Where x.hasSuffix("pepper")://si acaba en pepper se ejecuta print("THIS") default: print("Verdura") } ===== Programación Funcional ===== Swift tiene programación funcional. Ejemplos: Long result = numetos.stream().filter(num.patata > 10)//Filtro let interestingNumbers = [ "prime":[2, 3, 5, 7, 11, 13] "Fibonacci":[1,1,2,3,5,8,] "Square":[1,4,9,16,25] ] var largest = 0 for(_, numbers) in interestingNumbers{ for number in numbers{ if number > largest { largest = number } } } print largest ===== Bucles ===== var n = 2 while n < 100{//Bucle Repeat n*=2 } print(n) var m=2 repeat{//Bucle repeat While m*=2 } while m<100 print(M) ===== Funciones ===== func saludo(persona: String, day:String)->String{ return "Hola \(persona) hoy es \(dia)" } saludo(persona: "Pancho", dia: "Martes") Si ponemos un _ en la declaración de una función ya no es necesario indicar el tipo antes de la entrada de esta, también podemos cambiar el nombre de variable poniendo delante como queremos que sea: func saludo(_ persona String, en day:String)->String{// persona con el _ y day con en para indicar el día return "Hola \(persona) hoy es \(dia)" } saludo("Pancho", en: "Martes") También se pueden anidar funciones dentro de funciones, estas funciones anidadas no se pueden usar fuera de la función que esamos implementando: func prueba()->String{ func anidada(){ print("Hola, soy una funcion anidada") } return anidada() }