Programming in D

この本は、以下の形式でも入手可能だ。(訳注: これらはすべて英語版)
- 紙版またはKindle版
(これは、寄付を歓迎しているD言語財団に利益をもたらすAmazonアソシエイトリンクだ。) - educative.ioでインタラクティブコースとして、
- Gumroadで"お好きな価格"で電子書籍として、
- およびPDF、EPUB、AZW3、MOBI形式で無料でダウンロード可能。
章
- アンドレイ・アレクサンドレスクによる序文
- 序文
- Hello Worldプログラム
main
writeln
とwrite
- コンパイル
- 基本型
char int double (and more)
- 代入と評価の順序
=
- 変数
- 標準入力および標準出力ストリーム
stdin stdout
- 標準入力からの読み込み
- 論理式
bool true false ! == != < <= > >= || &&
if
文if else
while
ループwhile continue break
- 整数と算術演算
++ -- + - * / % ^^ += -= *= /= %= ^^=
- 浮動小数点型
.nan .infinity isNaN
- 配列
[] .length ~ ~=
- 文字
char wchar dchar
- スライスとその他の配列機能
.. $ .dup capacity
- 文字列
char[] wchar[] dchar[] string wstring dstring
- 標準入力および標準出力ストリームのリダイレクト
- ファイル
File
auto
およびtypeof
キーワードauto typeof
- 名前スコープ
for
ループfor
- 三項演算子 ?:
?:
- リテラル
- フォーマット出力
writef writefln
- フォーマットされた入力
do-while
ループdo while
- 連想配列
.keys .values .byKey .byValue .byKeyValue .get .remove in
foreach
ループforeach .byKey .byValue .byKeyValue
switch
とcase
switch, case, default, final switch
- 列挙型
enum .min .max
- 関数
return void
- 不変性
enum const immutable .dup .idup
- 値型と参照型
&
- 関数パラメータ
in out ref inout lazy scope shared
- l値とr値
auto ref
- 遅延演算子
- プログラム環境
main stderr
- 例外
throw try catch finally
- スコープ
scope(exit) scope(success) scope(failure)
assert
とenforce
assert enforce
- ユニットテスト
unittest
- 契約プログラミング
in out
- ライフタイムと基本操作
null
値とis
演算子null is !is
- 型変換
to assumeUnique cast
- 構造体
struct . {} static, static this, static ~this
- 可変長パラメータ
T[]... __MODULE__ __FILE__ __LINE__ __FUNCTION__ (and more)
- 関数のオーバーロード
- メンバー関数
toString
const ref
パラメータおよびconst
メンバー関数const ref, in ref, inout
- コンストラクタおよびその他の特殊関数
this ~this this(this) opAssign @disable
- 演算子オーバーロード
opUnary opBinary opEquals opCmp opIndex (and more)
- クラス
class new
- 継承
: super override abstract
- オブジェクト
toString opEquals opCmp toHash typeid TypeInfo
- インターフェース
interface static final
destroy
とscoped
destroy scoped
- モジュールとライブラリ
import, module, static this, static ~this
- カプセル化と保護属性
private protected public package
- ユニバーサル関数呼び出し構文(UFCS)
- プロパティ
- 構造体およびクラスの契約プログラミング
invariant
- テンプレート
- プラグマ
alias
とwith
alias with
alias this
alias this
- ポインタ
* &
- ビット演算
~ & | ^ >> >>> <<
- 条件付きコンパイル
debug, version, static if, static assert, __traits
is
式is()
- 関数ポインタ、デリゲート、およびラムダ
function delegate => toString
- 構造体およびクラスを使用した
foreach
opApply empty popFront front (and more)
- ネストされた関数、構造体、およびクラス
static
- 共用体
union
- ラベルと
goto
goto
- タプル
tuple Tuple AliasSeq .tupleof foreach
- その他のテンプレート
template opDollar opIndex opSlice
- その他の関数
inout pure nothrow @nogc @safe @trusted @system CTFE __ctfe
- ミックスイン
mixin
- 範囲
InputRange ForwardRange BidirectionalRange RandomAccessRange OutputRange
- その他の範囲
isInputRange ElementType hasLength inputRangeObject (and more)
static foreach
- 並列処理
parallel task asyncBuf map amap reduce
- メッセージパッシングによる並列処理
spawn thisTid ownerTid send receive (and more)
- データ共有の並列処理
synchronized, shared, shared static this, shared static ~this
- ファイバー
call yield
- メモリ管理
calloc realloc emplace destroy .alignof
- ユーザー定義属性(UDA)
@
- 演算子の優先順位