Comparison operators

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`

Last updated