編集の要約なし
88行目: 88行目:
  PrintAllArgs();
  PrintAllArgs();
  //出力:(何も出力されません)
  //出力:(何も出力されません)
=スコープ=
関数は、変数と同じように、そのスコープ内で一意な名前である必要があります。スコープの範囲内では、基本的に同じ名前の関数を宣言することはできませんし、反対にスコープの外に出ると、その範囲内で定義した関数は使用できません。しかし、すでに定義された関数がオーバーライド可能属性を持っている場合は、<code>override</code>修飾子を使ってその関数を上書きできます。次に例を示します。
function virtual SayHello()
  {
    print(“Hello,World”);
  }
SayHello();//出力例:Hello,World
function override SayHello()
  {
    print(“Hello,Bonjur”);
  }
SayHello();//出力例:Hello,Bonjur
その関数を、現在のスコープの範囲外で使用できるようにするには、その関数に<code>global</code>修飾子を使用することそれをグローバル関数として宣言する必要があります。次に例を示します。
function RegisterGlobalFunction()
  {
      function global SayHello()
      {
          print(“Hello,World”);
      }
  }
  SayHello();//出力例:Hello,World
=拡張メソッド=
=拡張メソッド=
拡張メソッドを使用すると、新規に型を作成することなく既存の型にメソッドを追加できます。拡張メソッドに使用する関数はグローバル関数である必要があり、現在の型の変数が代入される引数に<code>this</code>キーワードを使用します。
拡張メソッドを使用すると、新規に型を作成することなく既存の型にメソッドを追加できます。拡張メソッドに使用する関数はグローバル関数である必要があり、現在の型の変数が代入される引数に<code>this</code>キーワードを使用します。