See this section in the documentation:
Omitting External Parameter Names
If you do not want to use an external name for the second or subsequent parameters of a function, write an underscore (_) instead of an explicit external name for that parameter.
This character indicates that the identifier of the argument isn't required in the method call:
This method
func sayHello(personName: String, alreadyGreeted: Bool) -> String
is referred to as
sayHello(_:alreadyGreeted:)
and called with
sayHello("Tim", alreadyGreeted: true)
You can see that alreadyGreeted:
must be included in the function call, but not personName
.
IIRC, the first argument in any function call is always omitted when calling the function but written out in the declaration (obviously, otherwise there would be no way to access it).