Quando si imposta firstThingcome predefinito nilquesto funzionerà, senza il valore predefinito di nilottengo un errore che non è presente un parametro quando si chiama la funzione.
Digitando Int?ho pensato che lo rendesse opzionale con un valore predefinito di nil, ho ragione? E se è così, perché non funziona senza = nil?
func test(firstThing: Int? = nil) {
if firstThing != nil {
print(firstThing!)
}
print("done")
}
test()
func test(firstThing: Int = 4): un nonOptionalparametro con un valore predefinito. IlOptionaltipo (che è ciò?a cui si espande in un nome di tipo) è un tipo di valore; "parametro opzionale" è un nome sfortunato per un parametro che può o meno essere presente in una chiamata di funzione, indipendentemente dal suo tipo.