Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| swift:introduccion [2023/10/18 15:11] – thejuanvisu | swift:introduccion [2023/11/23 10:17] (actual) – thejuanvisu | ||
|---|---|---|---|
| Línea 5: | Línea 5: | ||
| Una variable puede ser opcional, no tiene valor. | Una variable puede ser opcional, no tiene valor. | ||
| - | < | + | < |
| var optionalString = " | var optionalString = " | ||
| print(optionalString == nil)//Esto sería un False | print(optionalString == nil)//Esto sería un False | ||
| Línea 19: | Línea 19: | ||
| Podemos lidiar con los valores nulos utilizando doble interrogación: | Podemos lidiar con los valores nulos utilizando doble interrogación: | ||
| - | < | + | < |
| let nickname: String? = nil | let nickname: String? = nil | ||
| let fulname = " | let fulname = " | ||
| Línea 25: | Línea 25: | ||
| let informalGreeting = "Hola \(nickname ?? fulname)" | let informalGreeting = "Hola \(nickname ?? fulname)" | ||
| | | ||
| + | </ | ||
| + | |||
| + | ===== Switches ===== | ||
| + | |||
| + | |||
| + | <code swift> | ||
| + | let vegetable = " | ||
| + | switch vegetable { | ||
| + | case " | ||
| + | print(" | ||
| + | case " | ||
| + | Print(" | ||
| + | case ket x Where x.hasSuffix(" | ||
| + | print(" | ||
| + | default: | ||
| + | print(" | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Programación Funcional ===== | ||
| + | Swift tiene programación funcional. | ||
| + | Ejemplos: | ||
| + | <code swift> | ||
| + | Long result = numetos.stream().filter(num.patata > 10)//Filtro | ||
| + | </ | ||
| + | |||
| + | <code swift> | ||
| + | let interestingNumbers = [ | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | |||
| + | var largest = 0 | ||
| + | for(_, numbers) in interestingNumbers{ | ||
| + | for number in numbers{ | ||
| + | if number > largest { | ||
| + | largest = number | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | print largest | ||
| + | </ | ||
| + | |||
| + | ===== Bucles ===== | ||
| + | |||
| + | |||
| + | <code swift> | ||
| + | var n = 2 | ||
| + | while n < 100{//Bucle Repeat | ||
| + | n*=2 | ||
| + | } | ||
| + | |||
| + | print(n) | ||
| + | |||
| + | var m=2 | ||
| + | repeat{// | ||
| + | m*=2 | ||
| + | } while m<100 | ||
| + | print(M) | ||
| + | </ | ||
| + | |||
| + | ===== Funciones ===== | ||
| + | |||
| + | <code swift> | ||
| + | func saludo(persona: | ||
| + | | ||
| + | } | ||
| + | |||
| + | saludo(persona: | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | |||
| + | <code swift> | ||
| + | func saludo(_ persona String, en day: | ||
| + | return "Hola \(persona) hoy es \(dia)" | ||
| + | } | ||
| + | |||
| + | saludo(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | También se pueden anidar funciones dentro de funciones, estas funciones anidadas no se pueden usar fuera de la función que esamos implementando: | ||
| + | |||
| + | <code swift> | ||
| + | func prueba()-> | ||
| + | func anidada(){ | ||
| + | print(" | ||
| + | } | ||
| + | return anidada() | ||
| + | } | ||
| + | |||
| </ | </ | ||