
Online Compiler: http://online.swiftplayground.run
Comments //Single line comment /* Multi line comment */
Print & Dump print("\(name) is \(age) years old")
Statements
● Conditional (if, switch, ?)
● Loop (for, while, repeat)
● Jump (break, continue, return)
Data Types & Literals var value : Float = 65.4
Data Type Alias typealias name = String
Generic Data Types
● Function func add <T: Numeric> (x: T, y: T) -> (T) { return x + y }
● Struct struct Numbers<T: Numeric> { var x : T }
Constants & Variables let name : String = "John"
Optionals var name : String? = "John" print(name!)
Enumerators
● Value enum Errors : Int { case Error0 = 0 init(x: Int) { self = .Error1 }}
● Template enum Errors { case Warning(code: Int, message: String) init(x: Int) { self = .State(x) }}
Tuple var error : (code: Int, message: String) = (message:"RED", code:1) error.0 error.message
Struct struct Employee : Person { var name : String }
Class class Employee : Person { var name : String }
Protocol protocol Person { var name : String { get set } }
Extensions extension Person { var hello : String { return "Hello \(name)" } }
Functions func greet (name: String) -> (String) { return("Hello \(name)") } greet(name:"Bill")
Closures let greet : (String)->(String) = { (name: String) -> (String) in return("Hello \(name)") } greet("Bill")
Subscripts subscript (index: String) -> (String) { get{ switch (index)} set{ name = newValue } }
Computed Property var greet : String { get{ return name } set{ name = newValue } }
Property Observers var name : String = "John" { willSet (newValue) { } didSet (oldValue) { } }