Score %0 (0 correct0 incorrect20 unanswered)

P1. ¿De qué se trata este código?

let val = (Double)6
  • Un problema de sintaxis
  • Conversión de tipo
  • Asignación
  • Inicialización

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Lo básico: Constantes y variables

P2. ¿Cuál es el error en este código?

let x = 5
guard x == 5 { return }
  • Falta el else en el guard
  • No hay nada mal
  • Falta un then en el guard
  • La comparación es incorrecta

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Control de flujo: Salida anticipada

P3. ¿Cuál es el tipo subyacente de este enum?

enum Direction {
  case north, south, east, west
}
  • No hay ninguno
  • String
  • Any
  • Int

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Enumeraciones: Valores Raw

P4. ¿Por qué se usa dispatchGroup en ciertas situaciones?

  • Permite que múltiples operaciones síncronas o asíncronas se ejecuten en diferentes colas.
  • Permite rastrear y controlar la ejecución de múltiples operaciones juntas.
  • Permite que las operaciones esperen unas a otras según sea necesario.
  • Todas estas respuestas.

Referencia: Desarrollador de Apple: Documentación: Despacho: Grupo de despacho

P5. ¿De qué se trata este código?

let val = 5
print("el valor es: \(val)")
  • Interpolación de cadena
  • Compilación de cadena
  • Encadenamiento de métodos
  • Concatenación de cadenas

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Cadenas y caracteres: Interpolación de cadena

P6. ¿Cuáles son los contenidos de 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
  • Este código contiene un error

Referencia: Desarrollador de Apple: Documentaciones: Swift: Array: sort()

P7. ¿Qué imprime este código?

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

P8. ¿Cuál es el valor de y?

let x = ["1", "2"].dropFirst()
let y = x[0]
  • Este código contiene un error
  • 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

P9. ¿Cuál es el valor de test en este código?

var test = 1 == 1
  • true
  • YES
  • 1
  • Este código contiene un error

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Operadores básicos: Operadores de comparación

P10. ¿Cuál es el valor de y?

var x: Int?
let y = x ?? 5
  • 5
  • 0
  • nil
  • Este código contiene un error

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Operadores básicos: Operadores de fusión nula

P11. ¿Cuál es el tipo de esta función?

func add(a: Int, b: Int) -> Int { return a+b }
  • Int
  • (Int, Int) -> Int
  • Int<Optional>
  • Las funciones no tienen tipos.

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)

P12. ¿Cuál es la forma correcta de llamar a esta función?

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)

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Funciones: Etiquetas de argumento de función y nombres de parámetros

P13. ¿Qué es el protocolo Codable?

  • Una combinación de Encodable y Decodable
  • No es un protocolo verdadero
  • Requerido para todas las clases
  • Se incluye automáticamente en todas las clases

Referencias:

P14. ¿Cuál es el tipo de value1 en este código?

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

P15. Cuando una función toma un cierre como parámetro, ¿cuándo quieres marcarlo como escapado?

  • Cuando se ejecuta después de que la función devuelve
  • Cuando su alcance es indefinido
  • Cuando se carga perezosamente
  • Todas estas respuestas

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Cierres: Cierres escapados

P16. ¿Qué está mal con este código?

class Person {
  var name: String
  var address: String
}
  • Person no tiene inicializadores.
  • Person no tiene una clase base.
  • 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

P17. ¿Cuál es el valor de names después de que se ejecute este código?

let names = ["Bear", "Joe", "Clark"]
names.map { (s) -> String in
  return s.uppercased()
}
  • ["BEAR", "JOE", "CLARK"]
  • ["B", "J", "C"]
  • ["Bear", "Joe", "Clark"]
  • Este código contiene un error.

P18. ¿Qué describe esta línea de código?

let val = 5
  • Una constante llamada val de tipo Int
  • Una variable llamada val de tipo item
  • Una constante llamada val de tipo Number
  • Una variable llamada val de tipo Int

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Lo básico: Seguridad y deducción de tipos

P19. ¿Cuál es el error en este código?

extension String {
  var firstLetter: Character = "c" {
    didSet {
      print("new value")
    }
  }
}
  • Las extensiones no pueden agregar propiedades.
  • No hay nada malo con eso.
  • 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

P20. didSet y willSet son ejemplos de _?

  • Observadores de propiedad
  • Propiedades clave
  • Todas estas respuestas
  • Las llamadas de valor newOld

Referencia: El lenguaje de programación Swift: Guía de lenguaje: Propiedades