Top > Shiba > Shiba Language > モジュール

モジュール Edit

概要 Edit

  • モジュール == 1つのソースファイル
  • モジュールには1つのシンボルを定義できる
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
 
 
 
-
|
!
module Project.A; // Project名前空間のAという名前のモジュールをこのソースファイルで定義することを宣言
 
pod A // モジュールの名前と同じ必要がある
{
    int b;
};

モジュール宣言 - module Edit

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
ModuleDecl:
    "module" ModulePath ";"
    "prototype" "module" ModulePath ";"
 
ModulePath:
    NamespacePath "." ModuleName
 
NamespacePath:
    Namespace
    Namespace "." NamespacePath
 
Namespace:
    Identifier
 
ModuleName:
    Identifier
  • ソースファイルの何よりも先に記述するキーワード
  • 1階層以上の名前空間とこのソースファイルで定義する型の名前を続けて記述する
    すべてを展開すべてを収束
      1
      2
    
     
     
    
    module Hoge.Foo; // Hoge名前空間のFooという型をこのソースで記述します
    module Foo; // エラー:名前空間がない
    
  • プロトタイプモジュールにはprototypeを前に付ける。(プロトタイプモジュールの項を参照)
  • プロトタイプモジュールはpublicな定数・変数・関数・ユーザー定義型を宣言する。
  • プロトタイプモジュールの関数の実装や定数の値はランタイムで設定される。
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 
 
 
-
|
|
|
|
!
 
prototype module Project.Vector3; // プロトタイプモジュールの宣言
 
pod Vector3
{
   float x;
   float y;
   float z;
   float length()const; // プロトタイプモジュールなので関数の実体は
};

外部モジュール宣言 - import/using Edit

  • 外部のモジュールや静的なシンボルを使う宣言
  • 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; // usingを使ったのでProject.Bの"Project."の部分が省略できる
  Project.C c; // importを使ったので省略ができない
};

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sat, 31 Jul 2010 20:08:50 JST (5008d)