モジュール 
概要 
0
1
2
3
4
5
6
7
8
| - モジュール == 1つのソースファイル
- モジュールには1つのシンボルを定義できる
#code(d,){{
module Project.A; // Project名前空間のAという名前のモジュールをこのソースファイルで定義することを宣言
pod A // モジュールの名前と同じ必要がある
{
int b;
};
|
モジュール宣言 - module 
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ModuleDecl:
"module" ModulePath ";"
ModulePath:
NamespacePath "." ModuleName
NamespacePath:
Namespace
Namespace "." NamespacePath
Namespace:
Identifier
ModuleName:
Identifier
|
- ソースファイルの何よりも先に記述するキーワード
- 1階層以上の名前空間とこのソースファイルで定義する型の名前を続けて記述する
1
2
|
| module Hoge.Foo; module Foo;
|
外部モジュール宣言 - import/using 
- 外部のモジュールを使う宣言
- importキーワードを使うと名前空間付きのフルパスで記述する必要がある。
- usingキーワードを使うと名前空間を省略することができる
1
2
3
4
5
6
7
8
9
10
|
-
|
|
!
| module Project.A;
using Project.B;
import Project.C;
class A
{
B b; Project.C c; };
|
|