Note: information on this page refers to Ceylon 1.1, not to the current release.

~= (complement assign) operator

The right-associative, binary infix ~= operator is used to compute the complement of its left-hand operand in its right-hand operand, assigning the result to the left-hand operand.


void m<Dog>(Set<Dog> dogs, Set<Dog> blackDogs) 
  given Dog satisfies Object {
    variable Set<Dog> nonBlackDogs = dogs;
    nonBlackDogs ~= blackDogs;



The ~ operator is defined as follows:

lhs = lhs ~ rhs

See the language specification for more details.


The ~= operator is polymorphic.

The ~ in the definition is the complement operator which depends on the Set interface.


The result type of the ~= operator is a Set with the same element type as the left hand operand's element type.

See also