let val = (Double)6
Referencia: El lenguaje de programación Swift: Guía de lenguaje: Lo básico: Constantes y variables
let x = 5
guard x == 5 { return }
else en el guard then en el guard Referencia: El lenguaje de programación Swift: Guía de lenguaje: Control de flujo: Salida anticipada
enum Direction {
case north, south, east, west
}
String Any Int Referencia: El lenguaje de programación Swift: Guía de lenguaje: Enumeraciones: Valores Raw
Referencia: Desarrollador de Apple: Documentación: Despacho: Grupo de despacho
let val = 5
print("el valor es: \(val)")
Referencia: El lenguaje de programación Swift: Guía de lenguaje: Cadenas y caracteres: Interpolación de cadena
vals después de que se ejecute este código?var vals = [10, 2]
vals.sort { (s1, s2) -> Bool in
s1 > s2
}
[10, 2] [2, 10] nil Referencia: Desarrollador de Apple: Documentaciones: Swift: Array: sort()
typealias Thing = [String: Any]
var stuff: Thing
print(type(of: stuff))
Dictionary<String, Any> Dictionary Error Thing Referencia: El lenguaje de programación Swift: Referencia de lenguaje: Tipos: Identificador de tipo
let x = ["1", "2"].dropFirst()
let y = x[0]
1 2 nil explicación
dropFirst() de Swift.Collection.Array devuelve un tipo de ArraySlice<Element>
como en las páginas de documentación:
@inlinable public func dropFirst(_ k: Int = 1) -> ArraySlice<Element>
El tipo ArraySlice hace que sea rápido y eficiente realizar operaciones en secciones de un array más grande. En lugar de copiar los elementos de una rebanada a un nuevo almacenamiento, una instancia ArraySlice presenta una vista en el almacenamiento de un array más grande. Y como ArraySlice presenta la misma interfaz que Array, generalmente puedes realizar las mismas operaciones en una rebanada que podrías en el array original.
Las rebanadas mantienen los mismos índices del array más grande para los mismos elementos, por lo que el índice de inicio de una rebanada depende de cómo se creó, lo que te permite realizar operaciones basadas en índices en un array completo o en una rebanada.
El código anterior devuelve una rebanada de valor ["2"] pero el índice no cambió. let y = x[1] daría el resultado esperado.
Para hacer referencia de forma segura a los índices de inicio y fin de una rebanada, siempre usa las propiedades startIndex y endIndex en lugar de valores específicos.
Referencia
var test = 1 == 1
true YES 1 Referencia: El lenguaje de programación Swift: Guía de lenguaje: Operadores básicos: Operadores de comparación
var x: Int?
let y = x ?? 5
5 0 nil Referencia: El lenguaje de programación Swift: Guía de lenguaje: Operadores básicos: Operadores de fusión nula
func add(a: Int, b: Int) -> Int { return a+b }
Int (Int, Int) -> Int Int<Optional> Referencia: [_El lenguaje de programación Swift: Gu
ía de lenguaje: Funciones: Tipos de función_](https://docs.swift.org/swift-book/LanguageGuide/Functions.html#ID174)
func myFunc(_ a: Int, b: Int) -> Int {
return a + b
}
myFunc(5, b: 6) myFunc(5, 6) myFunc(a: 5, b: 6) myFunc(a, b) Encodable y Decodable Referencias:
let value1 = "\("test".count)"
String Int null test.count Referencia: El lenguaje de programación Swift: Guía de lenguaje: Cadenas y caracteres: Interpolación de cadena
Referencia: El lenguaje de programación Swift: Guía de lenguaje: Cierres: Cierres escapados
class Person {
var name: String
var address: String
}
var name no está formateado correctamente. address es una palabra clave. Referencia: El lenguaje de programación Swift: Guía de lenguaje: Inicialización: Herencia de clase e inicialización
let names = ["Bear", "Joe", "Clark"]
names.map { (s) -> String in
return s.uppercased()
}
["BEAR", "JOE", "CLARK"] ["B", "J", "C"] ["Bear", "Joe", "Clark"] let val = 5
Int item Number Int Referencia: El lenguaje de programación Swift: Guía de lenguaje: Lo básico: Seguridad y deducción de tipos
extension String {
var firstLetter: Character = "c" {
didSet {
print("new value")
}
}
}
didSet toma un parámetro. c no es un carácter. Referencia: El lenguaje de programación Swift: Guía de lenguaje: Extensiones: Propiedades computadas
newOld Referencia: El lenguaje de programación Swift: Guía de lenguaje: Propiedades