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