Swift Functions

In Swift, function starts with the keyword "func". Then name of the function is written. If function has parameters then we write each parameter along with its type in parentheses, otherwise empty parentheses are written. If function has a return type then it is written with "->" symbol, otherwise nothing is written. If function has a return type then it must have a return statement which returns value according to that type.

    func sayHello(username: String) -> String
	    return "Hello, "+username	

To call this function, we will write as follows:

    let greeting = sayHello(username:"Omer Javed")

So now "Hello, Omer Javed" will be printed.

Function without Parameter

The example of function without parameter is given below:

    func getMyValue() -> Int
	    return 8
    let val = getMyValue()

Function without Return Type

The example of function without return type is given below:

    func welcome(fname: String, lname:String)
	    print("Hello, \(fname) \(lname)")

Function with Multiple Return Values

Here is the example of function returning multiple values:

    func getFirstAndLast(myArray:[Int]) -> (firstNum: Int, lastNum:Int)?
	    if myArray.isEmpty
		    return nil
	    let firstNumber = myArray[0]
	    let lastNumber = myArray[myArray.count-1]
	    return (firstNumber, lastNumber)

Note that to return multiple values, it is not essential at all to write “?” with the tuple. It is made optional (?) just to return nil if array is empty.

Functions with Argument Label

If we provide argument label to any parameter of the function then we write that label name instead while calling that function. Note that still at backend, value is passed to the corresponding variable, not label. For example,

    func showName(myLabel username: String)
	    print(“Name is \(username)”)
    showName(myLabel:”Omer Javed”)

Functions without Parameter Name while Calling

If you write "_" before parameter name (seperated by space) then you do not need to mention parameter name while calling the function.

    func  calculate(firstVal:Int,_ secondVal:Int)
	    return firstVal + secondVal
    let additionResult = calculate(firstVal:6,7)