D言語が好きないくつかの場所


詳細
1、醜いマクロを消した.
C/C++のマクロはうんざりしており、Dはこれ以上使用できません.
2、使いやすい文字列定数式.
クラスCの二重引用符を用いた文字列定数式に加え、`文字を用いることもできる.x"68 65 6 C 6 C 6 F"を使用して「hello」を表すことができ、r"aba"は文字列定数におけるエスケープ文字のエスケープ作用を無視し、文字列定数の後にc,wまたはdを加えて文字列定数がchar[]タイプ、wchar[]タイプ、またはdchar[]タイプであることを示すことができる.~演算子を使用して2文字列を接続できます.
3、数字.
数値は直接使用できますが、int a=3_と定義することもできます.029_301_000; 数値の直接量(整数、浮動小数点数、複素数を含む)式で、""文字は無視されます.また、複数のタイプも直接提供されています.
4、定長配列、変長配列、関連配列を提供する.
int[3]aは定長配列を定義する.int[]aは、変長配列を定義する.int[int]は関連配列を定義し、キータイプはint、値タイプはintである.int[char[]]aは関連配列を定義し、キータイプはchar[]であり、値タイプはintであり、非常に便利である.
foreachを使用して配列を巡回できます.
foreach
 (
int
 index, 
int
 value; a)  printf (
"
%d: %d
"
, index, value);
foreach
 (
char
[] key, 
int
 value; a)  printf (
"
%.*s: %d
"
, index, value);
inオペレータを使用して、値が関連配列のキーであるかどうかを判断できます.
int
[
char
[]] a;
if
 (
"
hello
"
 
in
 a)  writefln (
"
hello
"
);
配列はスライスできます(slice):
int
[] a; 
int
[] b 
=
 a[
1
..
3
]; 
int
[] c 
=
 a[
1
..length];
待って...
5、その他委託、関数ポインタ、テンプレート、異常、RAI、契約式プログラミング、ユニットテスト、with文、auto/typeof、ゴミ回収、オペレータリロード、インラインアセンブリ、条件コンパイル、HTMLへの埋め込みなどもサポートされ、ABIも標準化されている(C/C++が最も頭を悩ませる場所の一つである).これらの特性の大部分は熟知して実用的で、以下では条件のコンパイルとHTMLへの埋め込みを簡単に紹介します.
6、条件コンパイル.
Dではversion(VersionID)を使用して条件コンパイルを行うことができます.
version (Win32){  
//
}
else
{  
//
..
}
デバッグ条件も使用できます.
debug{  
//
}
else
{  
//
}
または、
debug printf ("hello");
静的条件のコンパイル:
const
 
int
 n
=
1
;
static
 
if
 (n 
==
 
1
)  writefln (
"
hello
"
);
else
  writefln (
"
world
"
);
タイプチェック:
int
 n 
=
 
3
;
if
 (
is
(n[]))  writefln (
"
like array
"
);
if
 (
is
(n:
int
))  writefln (
"
is an integer
"
);
7、HTMLを埋め込む.
1つのHTMLファイルでは、 の間の部分をDコードとしてコンパイルすることができる.たとえば、次のコードがあります.
<
h1
>
This is a test
h1
>
<
code
>
import std.c.stdio;int 
<
font 
size
=+1
><
b
>
main
b
>
font
>
(){
 
<
span 
style
="color:red"
>
printf
span
>
(
<
u
>
"
hello world
"
u
>
);
 
return 0;}
code
>
<
hr 
/>
<
h1
>
 End 
h1
>
HTMLファイルとして保存し、dmdコンパイラで直接コンパイルできます.