The following lines declare a myFunction
variable with a function type—specifically, a function that receives an Int
argument and returns a Bool
value. The variable works in the same way as an argument that specifies a function type for a function:
var myFunction: (Int -> Bool) myFunction = divisibleBy5 let myNumber = 20 print("Is \(myNumber) divisible by 5: \(myFunction(myNumber))")
Then, the code assigns the divisibleBy5
function to myFunction
. It is very important to understand that the line doesn't call the divisibleBy5
function and save the result of this call in the myFunction
variable. Instead, it just assigns the function to the variable that has a function type. The lack of a parenthesis after the function name makes the difference.
Then, the code prints whether the Int
value specified in the myNumber
constant is divisible by 5
or not using the myFunction
variable to call the referenced function with myNumber
as an argument.
The following...