あれは:
#include "mySnippet.h"
Dにはそんなものまであるの?
プロシージャの使用import "myInclude.d"
:
test.d(5): Error: Identifier expected following import
test.d(5): Error: ';' expected
C/C++ の #include ステートメントに少し似ている唯一のことは、ファイルのインプレース インポートと、それをソースに混合することです。
mixin(import("mySnippet.d"));
D はモジュラー プログラミング言語であり、import
D プログラミングを行うときはステートメントが味方になります。
Dでは、のようなものは本当に必要ありません#pragma once
。この拡張機能とインクルード ガードが存在するのは、C と C++ がこれらのことを気にしないためです。D します。
ただし、ライブラリを作成し、内部を公開したくない場合に備えて、クライアントにインターフェイスを提供する方法を疑問に思っていると思います。この目的のために、DPL チームはこの問題を解決するためにD インターフェイス ファイルを考え出しました。そのため、インターフェイス ファイルをライブラリと共にクライアントに渡すだけで、作業は完了です。
次の参照ファイルを参照してください: http://dlang.org/module.html
インポートは次のように行われます (そこから抽出):
import std.stdio; // import module stdio from package std
import foo, bar; // import modules foo and bar
void main() {
writefln("hello!\n"); // calls std.stdio.writefln
}
モジュールは次のように作成されます。
module A;
void foo();
void bar();
D スタイルは次のとおりです。
import myinclude;
D には、C のようなテキスト インクルードがありません。
D は、C/C++ と同じ方法でファイルをインクルードしません。
C/C++ は、インクルード ファイルの内容を #include の場所に実際にコピーします。そのため、'#pragma once' または他のインクルージョン ガードが必要になります。行を含めます。
D はわざわざソースをコピーする必要はなく、各ソース ファイルを独自のオブジェクト ファイルにコンパイルします。D の 'import' コマンドは、要求されたモジュールで見つかったシンボル (または各関数、クラス、構造体、列挙型、および変数の名前) を要求します。コンパイラは、これらのオブジェクト ファイルを実行可能ファイルに結合するだけです。まあ、それにはもう少し多くのことがありますが、これで十分正確なはずです。
また、Ruppe 氏が述べたように、ソース ファイルの名前を引用符で囲む必要も、名前にファイル拡張子を追加する必要もありません。
たとえば、main.d に main() 関数があり、main.d と同じフォルダーにある foo.d というソース ファイルを含めたい場合、main.d に次のように入力します。 ;
import foo;
foo では、次のようになります。
module foo;
<other code here>
お役に立てれば。これのほとんどは、http ://dlang.orgの言語定義の下の「モジュール」ページにもあります。