~ ?

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jun 26 23:33:07 PDT 2014


On 06/26/2014 10:58 PM, pgtkda wrote:
> What does this symbol mean in relation to D?
>
> ~

It can be used in two ways:

1) When used as a unary operator, it means bitwise complement:

     assert(~0xaa55aa55 == 0x55aa55aa);

2) When used as a binary operator, it means concatenation:

     assert("hello" ~ " world" == "hello world");

     auto arr = [ 1, 2 ];
     assert(arr ~ 3 == [ 1, 2, 3 ]);

When used with assignment, it means appending:

     auto arr = [ 1, 2 ];
     arr ~= 3;

     assert(arr == [ 1, 2, 3 ]);

It can also be used in the special function name ~this(), which is the 
destructor of a struct or a class. (Related functions: 'static ~this()' 
and 'shared static ~this()')

Ali

[1] http://ddili.org/ders/d.en/bit_operations.html

[2] http://ddili.org/ders/d.en/arrays.html

[3] ddili.org/ders/d.en/special_functions.html



More information about the Digitalmars-d-learn mailing list