Swift n'est pas comme les langages comme JavaScript, où vous pouvez appeler une fonction sans passer les paramètres et il sera toujours appelé. Afin d'appeler une fonction dans Swift, vous devez attribuer une valeur à ses paramètres.
Les valeurs par défaut pour les paramètres vous permettent d'assigner une valeur, sans le spécifier lors de l'appel de la fonction. C'est pourquoi, test()
fonctionne lorsque vous spécifiez une valeur par défaut sur le test de la déclaration.
Si vous n'avez pas inclure cette valeur par défaut, vous devez fournir la valeur de l'appel: test(nil)
.
Aussi, et non pas directement liée à cette question, mais sans doute vaut la peine de noter, vous utilisez le "C++" façon de traiter avec éventuellement des pointeurs null, pour faire face à d'éventuels néant options de Swift. Le code suivant est plus sûr (spécialement dans le multithreading logiciel), et il permet d'éviter la contrainte d'ôter de l'option:
func test(firstThing: Int? = nil) {
if let firstThing = firstThing {
print(firstThing)
}
print("done")
}
test()