Tüm dizeleri dchar
aralıkları olarak kabul edilir (belgelerinde http://dlang.org/phobos/std_algorithm.html#joiner bu konuda hiçbir şey yoktur). Bunun nedeni, dchar
'un tek bir kod noktası olması garantisidir, çünkü UTF-32'de her kod birimi bir kod noktasıdır, oysa UTF-8'de (char
) ve UTF-16'da (wchar
), kod başına kod birimi sayısı nokta değişir. Dolayısıyla, char
s ya da wchar
s üzerinde çalışıyorsanız, tüm karakterler yerine karakter parçaları üzerinde çalışıyor olursunuz, bu çok kötü olur. Unicode hakkında fazla bir şey bilmiyorsanız, Joel Spolsky tarafından this article'u okumanızı tavsiye ederim. Olayları oldukça iyi açıklıyor. Her durumda
, bireysel
char
s ve
wchar
s faaliyet mantıklı değil, çünkü
char
ve
wchar
ait dizeleri anlam
dchar
aralıkları (
ElementType!string
dchar
olduğu) olarak muamele görmesi kadarıyla aralıkları, onlar söz konusu olduğunda (
hasLength!string
false
- onların boyunu almak için kullanılacak
walkLength
ihtiyaçlar)
length
yok (
isRandomAccess!string
false
olan) (
hasSlicing!string
false
olan) dilimlenebilir değildir ve dizine eklenebilir değildir. Bu aynı zamanda, her türlü diziden yeni bir aralık oluşturan her şeyin
dchar
aralığında sonuçlanacağı anlamına gelir.
joiner
bunlardan biridir. Verimlilik için unicode ve özel durum dizelerini anlayabilen, uzunluk, dilimleme ve indeksleme yapabildikleri yerlerden yararlanan bazı işlevler vardır, ancak sonuç nihayetinde orijinalin bir parçası olmadıkça, döndürecekleri herhangi bir aralığın yapılması gerekecektir.
dchar
s.
Herhangi bir karakter aralığı üzerinde, her zaman dchar
ve popFront
her zaman tam bir kod noktasını kapatacaktır.
Aralıklar hakkında fazla bilgi sahibi değilseniz, this numaralı telefonu okumanızı öneririm. Bu, çevrimiçi olan ve şu anda sahip olduğumuz aralıklardaki en iyi öğretici olan D'deki bir kitaptaki bir bölüm. Aralıklardaki (makale dizileriyle nasıl çalıştıklarını da içeren) dlang.org'a uygun bir makale almalıyız, ancak henüz yazmamak için etrafta kimse yok. Ne olursa olsun, çok fazla D'nin standart kütüphanesini (özellikle std.algorithm) kullanabilmek için en azından temel aralıklara sahip olmanız gerekecek, çünkü bunları çok yoğun kullanıyor.