There’s a lot of new syntax in Swift, so we thought it might be useful if we put together a cheat sheet/quick reference on this particular language. Without further ado, let’s see what are they:

1. No .h and .m file, only one file with .swift extension

2. No semicolon at the end of the statement

3. No @ for literal strings

4. No pointers. So, no use of asterisk

5. Cannot use ’nil’ with non-optional variables or constants

6. No Mutable or Immutable concepts, var use to declare mutable and let use to declare immutable data type.

7. In swift, strings are value type not object type.

8. Constants declared as ‘let’ and variables with ‘var’

9. Declaration and initialisation i.e. var message. For example, String= “Hello”

10. Multiple declaration i.e. var red, green,blue i.e. Double

11. Print to console i.e. println(“Print”)

12. String interpolation i.e. \(variable_name)”)

13. No parenthesis for if i.e. if age < 60

14. Assertion i.e. assert(age >= 0, “A person’s age cannot be less than zero”)

15. Compound assignment operators i.e. +=

16. Unary minus operator i.e. number

17. Arithmetic i.e. 2+3

18. Reminder operators i.e. 2%3

19. Comparison operators i.e. a==b

20. Overflow operators i.e. &+

21. Nil coalescing operators i.e. a ?? b

22. Range operator i.e. 1…5

23. Half open rage operator i.e. 1..

24. Logical operators i.e. a || b

25. String Concatenation i.e. string3 = string1 + string2 or string.append(“string”)

26. Array declaration & initialication i.e. var shppinglist i.e. [String] = [“Eggs”,“milk”]

27. Set value of element in array i.e. set value i.e. shoppingList[0] = “Baking powder”

28. Get value from array i.e. var value = shoppingList[0]

29. Change range of value of an array i.e. shoppingList[0…2] = [“Apple”,”Blackberry”]

30. Array has functions like i.e. iEmpty, Append,InsertAtIndex,RemoveAtIndex, RemoveLast

31. Array Iteration 1, for example,

        for (index, value) in enumerate(shoppingList)
        {
            statements
        }

32. Array Iteration 2, for example,

    for index in 1…5
    {
        statements
    }

33. Array Iteration 3, for example

    for _ index in 1…5
    {
        statements
    }

34. Array Iteration 4, for example

    for var index = 0; index < 5; ++index
    {
        statements
    }

35. Dictionary declaration and initialisation i.e. var nameDict i.e.[string, string] = [“FirstName” – “nam”, “LastName” – “lastname”]

36. Set value in dictionary i.e nameDict[“FirstName”] = “Mahesh”

37. Get value in dictionary i.e var firstName = nameDict[“FirstName”]

38. Dictionary has functions like isEmpty, count, updateValue(_,Forkey) ,removeValueForKey, keys,values

39. Iteration with dictionary like

    for (key,value) in nameDict
    {
        statements
    }

40. Empty Dictionary initialisation i.e. var dict = [Int, String] ()

41. While loop :

     while condition
     {
        statements
     }

42. Do-while loop :

     Do
     {
        statements
     } while condition

43. If -else :

    if condition
     {
        statements
     } else
    {
        statements
    }

44. Switch :

1.    switch ‘value’
        {
        case value1 :
        ’statements'
         case value2 :
         ’statements’
        Default:
         ’Statements’
        }

2. No implicit fall through

3. Tuples can be used as case value in switch

4. Control transfer statements are also available like break, continue & fall through

45. Function i.e.

    Keyword FunctionName Parameter:DataType Return type
    func sayHello:(helloInput:String) ->String
    {
        return stringValue
    }

46. Variadic function

    func arithmeticMean (numbers: Double...) -> Double
    {
       var total: Double = 0
       for number in numbers {
           total += number
       }
       return total / Double(numbers.count)
    }

47. Functions with multiple parameters Extra info about parameter Extra info about parameter

    func sayHello(to person: String, and anotherPerson: String) -> String
    {
        return "Hello \(person) and \(anotherPerson)!"
    }

48. Call by reference with inout and & operator

    var arr = [1, 2, 3]

    func addItem(inout localArr: [Int])
    {
       localArr.append(4)
    }

    addItem(&arr)

49. Function with return type as Tuple

    func minMax(array: [Int]) -> (min: Int, max: Int) {
       var min
       var max
       return (currentMin, currentMax)
    }

50. Nested functions :

    func chooseStepFunction(backwards: Bool) -> (Int) -> Int
    {
       func stepForward(input: Int) -> Int { return input + 1 }
       func stepBackward(input: Int) -> Int { return input - 1 }
       return backwards ? stepBackward : stepForward
    }

51. Closure declaration :

    Structure
    { (parameters) -> return type in
    statements
    }

    Example
    {  (s1:string,s2:String) -> Bool in
        return s1 > s2
    }

52. Enumeration declaration :

    enum name
     {
    case 1
    case 2
    case 3
    }

53. Enumeration with associated values :

     enum barcode
    {
        case UPCA(Int, Int, Int, Int)
        case QRCode(String)
     }

54. Strings, Array, Dictionaries, Structures are value types and Classes are reference types

55. “override” is the keyword used to override observers, getter/setter, functions or subscript

56. “final” is the keyword used to stop overriding

57. External name means “user-defined-name” is used to differentiate the definition of multiple init method with single parameter

58. Class getting Properties from base must be initialised

59. In case of optional chaining use “?” to unwrap data, Instead of using “!”

60. For down casting a reference type variables use “as?” & “as!”. While for value type use “as” keyword

Hope the aforementioned cheat sheet & references were insightful for all the Swift programmers.

Written by –
Mahesh Asabe
Tech Lead – Mobisoft Infotech