Swift
Swift es un nuevo lenguaje de programación para iOS y OS X de desarrollo de aplicaciones.
Constantes y Variables
let seDeclaraUnConstante = 10
var seDeclaraUnaVariable = 0
Declarar constantes o variables en una sola línea
var variableUno = 10.2, variableDos = 12.8, variableTres = 20.9, variableCuatro = 100.3
Se puede declarar una variable indicando el tipo
var variableDeclaradaExplicitamente: String
Definir variables del mismo tipo en una sola línea
var temperatura, densidad, masa: Double
Para convertir de un tipo numérico a String
let texto = “En número cien es :”
let valor = 100
let textoFinal = texto + String(valor)
Otra manera de convertir valores numéricos en cadena
let habitaciones = 12
let cuartosDeBanyo = 5
let caracteristicasPiso = “El piso tiene \(habitaciones) habitaciones y \(cuartosDeBayo) Aseos en total \(habitaciones + cuartosDeBanyo).”
Imprimir Constantes y Variables
Utilizar println.
println(nombreVariable)
println("Cadena a imprimir \(nombreVariable)")
Utilizar ; al final de línea
El (;) no es obligatorio. Se puede utilizar para separar sentencias en la misma línea.
var variableUno = "Contenido" ; println(variableUno)
Tipo de datos
Integer
Enteros con signo Int (positivo, negativos o cero) o sin signo UInt (positivos o cero)
let valorMinimo = UInt8.min
let valorMaximo = UInt8.max
Números de coma flotante
Double tiene precisión de 15 dígitos decimales. (64 bits)
Float tiene 6 dígitos decimales (32 bits)
Tipos seguros
Swift en la compilación comprueba la existencia de errores, por ejemplo en el caso de esperar un String y recibir un int en la asignación de un valor a una variable.
Swift asigna el tipo correcto a las variables si no se indica explícitamente.
let temperaturaMedia = 32
En este caso Swift le asigna un tipo Int.
let desviacionMedia = 4.90393
En este caso a la variable desviacionMedia, Swift siempre asigna un Double (mejor que un Float) para un tipo decimal.
let suma = 4 + 0.32333
En este caso también será declarado implícitamente como Double.
Conversión Integer y Floating-Point
let numero = 7
let otroNumero = 0.8898
let valorFinal = Double(numero) + otroNumero
varlorFinal será de tipo Double con el valor 7.8898
También es posible pasar de floating-point a integre.
let valorEntero = Int(valorFinal)
valorEntero pasará a tener el valor entero (7).
Un valor 8.65 pasará a ser 8 int.
Un valor -2.8 pasará a ser -2 int.
Creación de Alias para Tipos
Se puede asignar un alias a un tipo de dato, para tener un nombre más contextual.
typealias SinSigno16 = UInt16
var valorMinimo = SinSigno16.min
Booleans
Valores posibles true o false
let calcularArea = true
let imprimirArea = false
Estas variables son de tipo Bool debido a que se han inicializado con valores true y false.
let valorLogicoEs = 1
No compila si lo utilizamos así
if valorLigicoEs {
}
En este caso si que está bien utilizado.
if valorLogicoEs == 1 {
}
TUPLES
Agrupa valores que pueden ser de diferentes tipos.
let numeroLetra (100, "Cien")
println("El numero es \(numeroLetra.0)")
println("El número en letra \(numeroLetra.1)")
Podemos asignar nombres a los elementos
let numeroLetra (numero: 100, enLetra: "Cien")
println("El numero es \(numeroLetra.numero)")
println("El número en letra \(numeroLetra.enLetra)")
Optionals
Utilizar options en situaciones en los que un valor puede no ser asignado.
let esUnNumero = "89"
let pasadoAentero = esUnNumero.toInt()
pasadoAentero es convertido a int? (entero opcional)
El método toInt puede fallar y la variable no tener un valor numérico.
Se puede utilizar en un condicional (if). Si contiene un opcional contiene un valor devuelve true, si no devuelve una false
if pasadoAentero{
println("\(esUnNumero) tiene un valor entero de \(pasadoAoptional!)")
}else{
println("\(esUnNumero) no puede ser convertido a integre")
}
Puede establecer un opcional value para asignar un estado sin valor asignando un mil value.
var puedeSerNil: int? = 100 // contiene el valor cien
puedeSerNil = nil // no contiene ningún valor
No se puede realizar con variables o constantes que no sean opcionales.
Utilizar println.
println(nombreVariable)
println("Cadena a imprimir \(nombreVariable)")
Utilizar ; al final de línea
El (;) no es obligatorio. Se puede utilizar para separar sentencias en la misma línea.
var variableUno = "Contenido" ; println(variableUno)
Tipo de datos
Integer
Enteros con signo Int (positivo, negativos o cero) o sin signo UInt (positivos o cero)
let valorMinimo = UInt8.min
let valorMaximo = UInt8.max
Números de coma flotante
Double tiene precisión de 15 dígitos decimales. (64 bits)
Float tiene 6 dígitos decimales (32 bits)
Swift en la compilación comprueba la existencia de errores, por ejemplo en el caso de esperar un String y recibir un int en la asignación de un valor a una variable.
Swift asigna el tipo correcto a las variables si no se indica explícitamente.
let temperaturaMedia = 32
En este caso Swift le asigna un tipo Int.
let desviacionMedia = 4.90393
En este caso a la variable desviacionMedia, Swift siempre asigna un Double (mejor que un Float) para un tipo decimal.
let suma = 4 + 0.32333
En este caso también será declarado implícitamente como Double.
Conversión Integer y Floating-Point
let numero = 7
let otroNumero = 0.8898
let valorFinal = Double(numero) + otroNumero
varlorFinal será de tipo Double con el valor 7.8898
También es posible pasar de floating-point a integre.
let valorEntero = Int(valorFinal)
valorEntero pasará a tener el valor entero (7).
Un valor 8.65 pasará a ser 8 int.
Un valor -2.8 pasará a ser -2 int.
Creación de Alias para Tipos
Se puede asignar un alias a un tipo de dato, para tener un nombre más contextual.
typealias SinSigno16 = UInt16
var valorMinimo = SinSigno16.min
Booleans
Valores posibles true o false
let calcularArea = true
let imprimirArea = false
Estas variables son de tipo Bool debido a que se han inicializado con valores true y false.
let valorLogicoEs = 1
No compila si lo utilizamos así
if valorLigicoEs {
}
En este caso si que está bien utilizado.
if valorLogicoEs == 1 {
}
TUPLES
Agrupa valores que pueden ser de diferentes tipos.
let numeroLetra (100, "Cien")
println("El numero es \(numeroLetra.0)")
println("El número en letra \(numeroLetra.1)")
Podemos asignar nombres a los elementos
let numeroLetra (numero: 100, enLetra: "Cien")
println("El numero es \(numeroLetra.numero)")
println("El número en letra \(numeroLetra.enLetra)")
Optionals
Utilizar options en situaciones en los que un valor puede no ser asignado.
let esUnNumero = "89"
let pasadoAentero = esUnNumero.toInt()
pasadoAentero es convertido a int? (entero opcional)
El método toInt puede fallar y la variable no tener un valor numérico.
Se puede utilizar en un condicional (if). Si contiene un opcional contiene un valor devuelve true, si no devuelve una false
if pasadoAentero{
println("\(esUnNumero) tiene un valor entero de \(pasadoAoptional!)")
}else{
println("\(esUnNumero) no puede ser convertido a integre")
}
Puede establecer un opcional value para asignar un estado sin valor asignando un mil value.
var puedeSerNil: int? = 100 // contiene el valor cien
puedeSerNil = nil // no contiene ningún valor
No se puede realizar con variables o constantes que no sean opcionales.