※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

データ型

基本データ型

キーワード 内容 デフォルト
void void型 -
bool 2値 false
byte 符号付き8ビット 0
ubyte 符号なし8ビット 0
short 符号付き16ビット 0
ushort 符号なし16ビット 0
int 符号付き32ビット 0
uint 符号なし32ビット 0
long 符号付き64ビット 0
ulong 符号なし64ビット 0
cent 符号付き128ビット 0
ucent 符号なし128ビット 0
float 32ビット浮動小数点数 float.nan
double 64ビット浮動小数点数 double.nan
real マシン依存最大サイズの浮動小数点数 real.nan
ifloat 虚数float float.nan*1.0i
idouble 虚数double double.nan*1.0i
ireal 虚数real real.nan*1.0i
cfloat 複素数float float.nan+float.nan*1.0i
cdouble 複素数double double.nan+double.nan*1.0i
creal 複素数real real.nan+real.nan*1.0i
char 符号なし8ビットUTF-8 0xFF
wchar 符号なし16ビットUTF-16 0xFFFF
dchar 符号なし32ビットUTF-32 0x0000FFFF

派生データ型

  • ポインタ
  • 配列(stringを含む)
  • 集約配列(associative array)
  • 関数
  • デレゲート(delegate)

ユーザ定義型

  • エリアス(alias)
  • 型定義(typedef)
  • enum
  • 構造体(struct)
  • 共用体(union)
  • クラス(class)

基底型

enumの基底型は,以下のように指定する.


enum E : T {...} // TはEの基底型


typedefの基底型は,以下のように指定する.


typedef T U ; // TはUの基底型


ポインタの型変換

D言語では,ポインタから非ポインタ,または非ポインタからポインタへのキャストが可能である.ただし,ポインタをガベージコレクタで割り当てられたデータへのキャストはできない.

暗黙の型変換

必要に応じて,自動的に暗黙の型変換が適用される. 明示的な型変換が必要な場合を除き,typedefとenumのその基底型への変換は暗黙的におこなわれる.


typedef int maint ; int i ; myint m ; i = m ; m = i ; // ERROR m = cast(myint)i ; m = 3 ;

enum Foo {E} Foo f ; i = f ; f = i ; // ERROR f = cast(Foo)i ; f = 0 ; // ERROR f = E ;