String Comparison Operator

ag0aep6g via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Apr 30 13:53:47 PDT 2017


On 04/30/2017 09:05 PM, bauss wrote:
> On Sunday, 30 April 2017 at 16:15:41 UTC, Xinok wrote:
[...]
>> ~ is for string concatenation, i.e.:
[...]
> It's not actually a string concatenation operator, it's an array
> appending operator.

Appending is related but distinct. `~` does concatenation. `~=` does 
appending.

https://dlang.org/spec/arrays.html#array-concatenation

> Strings are just an alias for immutable(char)[] and not actually a type
> unlike other languages like C#, Java etc. where strings are objects.

I get what you mean, but while we're splitting hairs: `string` 
definitely is a type. It's the same type as `immutable(char)[]`.

> In fact it doesn't have any operators that doesn't work with any other
> type of arrays. Just like functions such as replace etc. aren't
> necessarily string functions, but works with any type of arrays.

Not an operator, but `foreach` has special support for transcoding 
between the different UTF variants.

Regarding functions, narrow strings (`string`, `wstring`) are special 
cased all over phobos. It's because as ranges they have dchar elements, 
but as arrays they have char/wchar elements. std.array.replace [1] also 
mentions strings in its signature because of this.



[1] https://dlang.org/phobos/std_array.html#.replace


More information about the Digitalmars-d-learn mailing list