Score %0 (0 correct0 incorrect20 unanswered)

Q1. Di che cosa si tratta questo codice?

let val = (Double)6
  • Un problema di sintassi
  • Typecasting
  • Assegnazione
  • Inizializzazione

Riferimento: The Swift Programming Language: Language Guide: The Basics: Constants and Variables

Q2. Qual è l'errore in questo codice?

let x = 5
guard x == 5 { return }
  • Manca il else nel guard
  • Non c'è niente di sbagliato
  • Nel guard manca un then
  • Il confronto è sbagliato

Riferimento: The Swift Programming Language: Language Guide: Control Flow: Early Exit

Q3. Qual è il tipo grezzo/sottostante di questa enum?

enum Direction {
  case north, south, east, west
}
  • Non ce n'è uno
  • String
  • Any
  • Int

Riferimento: The Swift Programming Language: Language Guide: Enumerations: Raw Values

Q4. Perché viene utilizzato dispatchGroup in determinate situazioni?

  • Permette a più operazioni sincrone o asincrone di eseguire su code diverse.
  • Consente di tracciare e controllare l'esecuzione di più operazioni insieme.
  • Consente alle operazioni di aspettare l'una dell'altra come desiderato.
  • Tutte queste risposte.

Riferimento: Apple Developer: Documentazione: Dispatch: Dispatch Group

Q5. Di che cosa si tratta questo codice?

let val = 5
print("il valore è: \(val)")
  • Interpolazione di stringhe
  • Compilazione di stringhe
  • Concatenazione di stringhe
  • Concatenazione di metodi

Riferimento: The Swift Programming Language: Language Guide: Strings and Characters: String Interpolation

Q6. Quali sono i contenuti di vals dopo l'esecuzione di questo codice?

var vals = [10, 2]
vals.sort { (s1, s2) -> Bool in
  s1 > s2
}
  • [10, 2]
  • [2, 10]
  • nil
  • Questo codice contiene un errore

Riferimento: Apple Developer: Documentazione: Swift: Array: sort()

Q7. Cosa stampa questo codice?

typealias Thing = [String: Any]
var stuff: Thing
print(type(of: stuff))
  • Dictionary<String, Any>
  • Dictionary
  • Error
  • Thing

Riferimento: The Swift Programming Language: Language Reference: Types: Type Identifier

Q8. Qual è il valore di y?

let x = ["1", "2"].dropFirst()
let y = x[0]
  • Questo codice contiene un errore
  • 1
  • 2
  • nil

spiegazione
dropFirst() da Swift.Collection.Array restituisce un tipo di ArraySlice<Element>
come nelle pagine di documentazione:
@inlinable public func dropFirst(_ k: Int = 1) -> ArraySlice<Element>

Il tipo ArraySlice rende veloci ed efficienti le operazioni su sezioni di un array più grande. Invece di copiare gli elementi di una slice in un nuovo spazio di archiviazione, un'istanza di ArraySlice presenta una vista sullo spazio di archiviazione di un array più grande. E poiché ArraySlice presenta la stessa interfaccia di Array, è possibile eseguire generalmente le stesse operazioni su una slice che si potrebbe fare sull'array originale.

Le fette mantengono gli indici
A differenza di Array e ContiguousArray, l'indice iniziale per un'istanza di ArraySlice non è sempre zero. Le fette mantengono gli stessi indici dell'array più grande per gli stessi elementi, quindi l'indice iniziale di una slice dipende da come è stata creata, consentendo di eseguire operazioni basate sugli indici su un array completo o su una slice.
Il codice sopra restituisce una slice di valore ["2"] ma l'indice non è cambiato. let y = x[1] darebbe il risultato previsto.
Per fare riferimento in modo sicuro agli indici di inizio e fine di una slice, utilizzare sempre le proprietà startIndex ed endIndex anziché valori specifici.
Riferimento

Q9. Qual è il valore di test in questo codice?

var test = 1 == 1
  • true
  • YES
  • 1
  • Questo codice contiene un errore

Riferimento: The Swift Programming Language: Language Guide: Basic Operators: Comparison Operators

Q10. Qual è il valore di y?

var x: Int?
let y = x ?? 5
  • 5
  • 0
  • nil
  • Questo codice contiene un errore

Riferimento: The Swift Programming Language: Language Guide: Basic Operators: Nil-Coalescing Operators

Q11. Qual è il tipo di questa funzione?

func add(a: Int, b: Int) -> Int { return a+b }
  • Int
  • (Int, Int) -> Int
  • Int<Optional>
  • Le funzioni non hanno tipi.

Rifer

imento: The Swift Programming Language: Language Guide: Functions: Function Types

Q12. Qual è il modo corretto per chiamare questa funzione?

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)

Riferimento: The Swift Programming Language: Language Guide: Functions: Function Argument Labels and Parameter Names

Q13. Il protocollo Codable è _?

  • Una combinazione di Encodable e Decodable
  • Non è un vero protocollo
  • Richiesto per tutte le classi
  • Incluso automaticamente in tutte le classi

Riferimenti:

Q14. Qual è il tipo di value1 in questo codice?

let value1 = "\("test".count)"
  • String
  • Int
  • null
  • test.count

Riferimento: The Swift Programming Language: Language Guide: Strings and Characters: String Interpolation

Q15. Quando una funzione prende una chiusura come parametro, quando vuoi contrassegnarla come escaping?

  • Quando viene eseguita dopo che la funzione restituisce
  • Quando il suo ambito è non definito
  • Quando viene caricata in modo pigro
  • Tutte queste risposte

Riferimento: The Swift Programming Language: Language Guide: Closures: Escaping Closures

Q16. Cosa c'è di sbagliato in questo codice?

class Person {
  var name: String
  var address: String
}
  • Person non ha inizializzatori.
  • Person non ha una classe base.
  • var name non è formattato correttamente.
  • address è una parola chiave.

Riferimento: The Swift Programming Language: Language Guide: Initialization: Class Inheritance and Initialization

Q17. Qual è il valore di names dopo l'esecuzione di questo codice?

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

Q18. Come si descrive questa riga di codice?

let val = 5
  • Una costante chiamata val di tipo Int
  • Una variabile chiamata val di tipo item
  • Una costante chiamata val di tipo Number
  • Una variabile chiamata val di tipo Int

Riferimento: The Swift Programming Language: Language Guide: The Basics: Type Safety and Type Inference

Q19. Qual è l'errore in questo codice?

extension String {
  var firstLetter: Character = "c" {
    didSet {
      print("new value")
    }
  }
}
  • Le estensioni non possono aggiungere proprietà.
  • Non c'è nulla di sbagliato.
  • didSet richiede un parametro.
  • c non è un carattere.

Riferimento: The Swift Programming Language: Language Guide: Extensions: Computed Properties

Q20. didSet e willSet sono esempi di _?

  • Osservatori di proprietà
  • Proprietà chiave
  • Tutte queste risposte
  • Chiamate di valore newOld

Riferimento: The Swift Programming Language: Language Guide: Properties