Swift Cheat Sheet

A quick cheat sheet and reference guide for Apple's Swift language. This guide intends to cover all the key features of Swift, including Strings, Arrays, Dictionaries and Flow Control.

Swift is a new programming language for developing iOS and OS X apps that was introduced by Apple in June 2014.

Variables

var myInt = 1 var myExplicitInt: Int = 1 // explicit type var x = 1, y = 2, z = 3 // declare multiple integers myExplicitInt = 2 // set to another integer value

Constants

let myInt = 1 myInt = 2 // compile-time error!

Strings

var myString = "a" let myImmutableString = "c" myString += "b" // ab myString = myString + myImmutableString // abc myImmutableString += "d" // compile-time error! let count = 7 let message = "There are \(count) days in a week"

Logical Operators

var happy = true var sad = !happy // logical NOT, sad = false var everyoneHappy = happy && sad // logical AND, everyoneHappy = false var someoneHappy = happy || sad // logical OR, someoneHappy = true

Printing

let name = "swift" println("Hello") println("My name is \(name)") print("See you ") print("later") /* Hello My name is swift See you later */

Arrays

var colors = ["red", "blue"] var moreColors: String[] = ["orange", "purple"] // explicit type colors.append("green") // [red, blue, green] colors += "yellow" // [red, blue, green, yellow] colors += moreColors // [red, blue, green, yellow, orange, purple] var days = ["mon", "thu"] var firstDay = days[0] // mon days.insert("tue", atIndex: 1) // [mon, tue, thu] days[2] = "wed" // [mon, tue, wed] days.removeAtIndex(0) // [tue, wed]

Dictionaries

var days = ["mon": "monday", "tue": "tuseday"] days["tue"] = "tuesday" // change the value for key "tue" days["wed"] = "wednesday" // add a new key/value pair var moreDays: Dictionary = ["thu": "thursday", "fri": "friday"] moreDays["thu"] = nil // remove thu from the dictionary moreDays.removeValueForKey("fri") // remove fri from the dictionary

Conditionals

//IF STATEMENT let happy = true if happy { println("We're Happy!") } else { println("We're Sad :('") } // We're Happy! let speed = 28 if speed <= 0 { println("Stationary") } else if speed <= 30 { println("Safe speed") } else { println("Too fast!") } // Safe speed //SWITCH STATEMENT let n = 2 switch n { case 1: println("It's 1!") case 2...4: println("It's between 2 and 4!") case 5, 6: println("It's 5 or 6") default: println("Its another number!") } // It's between 2 and 4!

For Loops

for var index = 1; index < 3; ++index { // loops with index taking values 1,2 } for index in 1..3 { // loops with index taking values 1,2 } for index in 1...3 { // loops with index taking values 1,2,3 } let colors = ["red", "blue", "yellow"] for color in colors { println("Color: \(color)") } // Color: red // Color: blue // Color: yellow let days = ["mon": "monday", "tue": "tuesday"] for (shortDay, longDay) in days { println("\(shortDay) is short for \(longDay)") } // mon is short for monday // tue is short for tuesday

While Loops

var count = 1 while count < 3 { println("count is \(count)") ++count } // count is 1 // count is 2 count = 1 while count < 1 { println("count is \(count)") ++count } // count = 1 do { println("count is \(count)") ++count } while count < 3 // count is 1 // count is 2 count = 1 do { println("count is \(count)") ++count } while count < 1 // count is 1

Functions

func iAdd(a: Int, b: Int) -> Int { return a + b } iAdd(2, 3) // returns 5 func eitherSide(n: Int) -> (nMinusOne: Int, nPlusOne: Int) { return (n-1, n+1) } eitherSide(5) // returns the tuple (4,6)

Classes

class Counter { var count: Int = 0 func inc() { count++ } func add(n: Int) { count += n } func printCount() { println("Count: \(count)") } } var myCount = Counter() myCount.inc() myCount.add(2) myCount.printCount() // Count: 3

Closures