Function declaration changes
Swift provides a very flexible set of rules for defining functions. You can create functions with no parameters, with parameters, or even with argument labels. Every Swift function has a type, parameters (or no parameters), and a return type. For Swift 3, the language has been tweaked to make things more consistent and less complex.
Consistent parameter labeling [SE-0046]
Parameter labels are used for naming each argument in the function definition. In Swift 2.2 and earlier, function parameters could be defined with a local and an external label. The local argument label is required as this label is used to refer to the parameter in the body of the function. The external argument label, when provided, was used in the actual function call. You can think of the external label as your shiny descriptive name at the call site to provide good insight into what the argument represents. The internal label is, as the name implies, the name your function uses in the...