Swift no es como lenguajes como JavaScript, donde puede llamar a una función sin pasar los parámetros y aún se llamará. Entonces, para llamar a una función en Swift, debe asignar un valor a sus parámetros.
Los valores predeterminados para los parámetros le permiten asignar un valor sin especificarlo al llamar a la función. Es por eso que test()
funciona cuando especifica un valor predeterminado en la declaración de prueba.
Si no se incluye ese valor por defecto, es necesario proporcionar el valor de la llamada: test(nil)
.
Además, y no está directamente relacionado con esta pregunta, pero probablemente valga la pena señalarlo, está utilizando la forma "C ++" de tratar con punteros posiblemente nulos, para tratar con posibles opcionales nulos en Swift. El siguiente código es más seguro (especialmente en software de subprocesos múltiples) y le permite evitar el desenvolvimiento forzado del opcional:
func test(firstThing: Int? = nil) {
if let firstThing = firstThing {
print(firstThing)
}
print("done")
}
test()
func test(firstThing: Int = 4)
: un noOptional
parámetro con un valor predeterminado. ElOptional
tipo (que es lo que?
en un nombre de tipo se expande) es un tipo de valor; "parámetro opcional" es un nombre desafortunado para un parámetro que puede estar presente o no en una llamada de función, independientemente de su tipo.