# Basic Swift, part 2 - Operators

### Swift operators

#### Unary Minus Operator

Reverts the value to a negative value

 ``````1 2 `````` ``````let two = 2 let minusTwo = -two // (-) unary operator, returns -2``````

#### Compound Assignment Operators

 ``````30 31 32 33 34 35 `````` ``````var foo = 1 foo += 2 // same as foo = foo + 2, result 3 foo -= 1 // same as foo = foo - 1, result 2 foo *= 3 // same as foo = foo * 3, result 6 foo /= 2 // same as foo = foo / 2, result 3``````

#### Comparison Operators

 ``````30 31 32 33 34 35 36 `````` ``````var bar = 3 foo == bar // compares if foo is equal to bar foo != bar // compares if foo is diferent from bar foo > bar // compare if foo is bigger than bar foo < bar // compare if foo is smaller than bar foo >= bar // compare if foo is bigger or equal than bar foo <= bar // compare if foo is smaller or equal than bar``````

#### Nil Coalescing Operator

Nil coalescing operator allows the falback to a second option

 ``````30 31 32 33 34 `````` ``````var food = "banana" var drink: String? // (?) maskes variable optional, value is in question, maybe exists maybe it does not var stomach = food ?? drink // (??) coalescing operator if no food, then drink``````

#### Range Operator

Goes through a sequence of numbers

 ``````30 31 32 33 `````` ``````// loop through range of numbers from 0 to 4 (included) for number in 0...4 { print(number) }``````
 ``````30 31 32 33 `````` ``````// loop through range of numbers from 0 to 4 (excluded) for number in 0...<4 { print(number) }``````

#### Logical Operators

##### Not Operator (!)
 ``````30 31 32 33 `````` ``````let canAccess = false if !canAccess { // ! inverts the variable print("Can access") }``````
##### And Operator (&&)

Both values must be true

 ``````30 31 32 `````` ``````if 2 == 2 && 5 == 5 { return "Both are equal" }``````
##### Or Operator (||)

One of the values must be true

 ``````30 31 32 `````` ``````if 5 == 2 || 5 == 5 { return "One of them is equal" }``````