Book Image

Beginning Swift

By : Rob Kerr, Kåre Morstøl
Book Image

Beginning Swift

By: Rob Kerr, Kåre Morstøl

Overview of this book

Take your first foray into programming for Apple devices with Swift.Swift is fundamentally different from Objective-C, as it is a protocol-oriented language. While you can still write normal object-oriented code in Swift, it requires a new way of thinking to take advantage of its powerful features and a solid understanding of the basics to become productive.
Table of Contents (10 chapters)

Function Type


Open Functional.playground at the Introduction page.

First, let's reiterate what a function type is:

var sum: (Int, Int) -> Int

The type of sum is a function that takes two Int values and returns one Int value. We can assign both functions and closures to it, as they are essentially the same thing:

func sumFunction(a: Int, b: Int) -> Int {
  return a + b
let sumClosure = {(a: Int, b: Int) in return a + b}

sum = sumFunction
sum = sumClosure

We can also assign an operator to it:

sum = (+)

This is because an operator is a function (the parentheses around the + operator are just to signal that we want to use it as a function, not add things together right away). The definition of the + operator for Int is:

static func +(lhs: Int, rhs: Int) -> Int

So whenever a function has a parameter of a function type, we can supply an operator, as long as the input and output match:

func perform(operation: (Int, Int) -> Int...