Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
swift:introduccion [2023/10/18 15:06] – creado thejuanvisu | swift:introduccion [2023/11/23 10:17] (actual) – thejuanvisu | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Introducción a swift ====== | ====== Introducción a swift ====== | ||
+ | Librerías básicas | ||
+ | Import Foundation | ||
===== Opcionalidad ===== | ===== Opcionalidad ===== | ||
- | 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 12: | Línea 13: | ||
if let name = optionalName{ | if let name = optionalName{ | ||
| | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | Podemos lidiar con los valores nulos utilizando doble interrogación: | ||
+ | |||
+ | <code swift> | ||
+ | let nickname: String? = nil | ||
+ | let fulname = " | ||
+ | //con la doble interrogación indicamos que si nickname es null, se muestra fulname en su lugar | ||
+ | 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() | ||
} | } | ||
</ | </ |