Comparison operators work with boolean and integer values.
Equality: ==, for booleans and integers
Both sides of the equality operator may be optional, even of different levels, so it is for example possible to compare a non-optional with a double-optional (??).
1 == 1 // is `true`
1 == 2 // is `false`
true == true // is `true`
true == false // is `false`
let x: Int? = 1
x == nil // is `false`
let x: Int = 1
x == nil // is `false`
// Comparisons of different levels of optionals are possible.
let x: Int? = 2
let y: Int?? = nil
x == y // is `false`
// Comparisons of different levels of optionals are possible.
let x: Int? = 2
let y: Int?? = 2
x == y // is `true`
Inequality: !=, for booleans and integers (possibly optional)
Both sides of the inequality operator may be optional, even of different levels, so it is for example possible to compare a non-optional with a double-optional (??).
1 != 1 // is `false`
1 != 2 // is `true`
true != true // is `false`
true != false // is `true`
let x: Int? = 1
x != nil // is `true`
let x: Int = 1
x != nil // is `true`
// Comparisons of different levels of optionals are possible.
let x: Int? = 2
let y: Int?? = nil
x != y // is `true`
// Comparisons of different levels of optionals are possible.
let x: Int? = 2
let y: Int?? = 2
x != y // is `false`
Less than: <, for integers
1 < 1 // is `false`
1 < 2 // is `true`
2 < 1 // is `false`
Less or equal than: <=, for integers
1 <= 1 // is `true`
1 <= 2 // is `true`
2 <= 1 // is `false`
Greater than: >, for integers
1 > 1 // is `false`
1 > 2 // is `false`
2 > 1 // is `true`
Greater or equal than: >=, for integers
1 >= 1 // is `true`
1 >= 2 // is `false`
2 >= 1 // is `true`