I'm filling a few gaps in my existing Swift programming language skills before moving onto the more advanced features. 

I have checked Apples... "Swift Programming Language" guide and Google search shows lots of information about the rules around using the parameters, but I am looking for the overall Why , not the How...

**Question:** 

Why is there a need to have parameters and return value types for functions in Swift? 

(I am not asking about the parameter names etc., but a higher level (general) question on 'Why')

I have made a number of programs using simple C-Style functions in Swift, without a need for parameters or return values which works fine as I know what the functions should be doing for me. 

Simple e.g.

```
func printName() {
print("John")
}

```

However, there are 'exceptions' like some in-built Swift functions. 
E.g....

> 
> func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
>  return colors.count
>  }
> 
> 
> 

etc. for table view or collection view usage .

So the only reason I see for using parameters + return values (type) in functions is to ensure only specific type of data is inputted and outputted.

In other words, its a way to avoid unexpected outcomes. So acting almost like a Switch statement, where if I have a specific condition is met -- a specific output will occur... (in functions... "an action").

Am I correct in this understanding, in trying to understand why / where one needs to use parameters & / or return values types with Functions? Or are there other practical reasons? If so can you provide an example?

Many thanks in advance!!!!