関数の定義 またまた数学チックな言葉ですが、関数とは、処理のひとまとまりのことです。 同じ処理は一つにまとめて簡単にしよう、という発想です。 関数の定義の仕方 関数を定義するには、「function」を使います。
関数の定義
    1
    2
    3
    4
    5
    function Greeting(){
      Mes("こんにちは!");
    }

    Greeting;
こんな感じです。「function」のあとに関数名を書きます。 呼び出すときも普通の関数と同様です。 ()内は引数です。引数を取る関数を作る場合は、()の中に引数名を書きます。
引数あり関数
    1
    2
    3
    4
    5
    function Greeting(Name){
      Mes("こんにちは!\n私は{Name}です。");
    }

    Greeting("Spinel");
引数を複数とる場合は、「,」で区切って指定します。 「function Greeting(Name,Age)」といった感じです。 定義した引数は、ローカル変数、つまりその関数内だけで有効な変数として使用できます。 上の例のように「Name」という変数に引数が代入されます。 注意したいのが、標準関数と同名の関数を定義した場合に無視されるという点です。 つまり、Mesという関数を定義した場合、標準命令のMesが実行される、ということです。 それ以外の定義された関数の場合には、重複したときにエラーとなります。 同名関数の定義 Spinelでは、同名関数を定義することが出来ます。 同名の関数の場合、引数の違いで処理を分けます。 このことを、関数をオーバーロードするといいます。 関数をオーバーロードするには、functionのまえに「overload」をつけます。
関数のオーバーロード
    1
    2
    3
    overload function Greeting(Name){
      Mes("こんにちは!\n私は{Name}です。");
    }
1つだけなら意味がありません。 以下のように、異なる引数で同名の関数を定義します。
オーバーロード
    1
    2
    3
    4
    5
    6
    7
    overload function Greeting(Name){
      Mes("こんにちは!\n私は{Name}です。");
    }

    overload function Greeting(Name,Age){
      Mes("こんにちは!\n私は{Name}、{Age}歳です。");
    }
1つめの関数は引数を1つ、2つめの関数は引数を2つ取ります。 呼び出しは普通です。コンパイラが適切な引数の関数へと変換してくれます。
呼び出し
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    overload function Greeting(Name){
      Mes("こんにちは!\n私は{Name}です。");
    }

    overload function Greeting(Name,Age){
      Mes("こんにちは!\n私は{Name}、{Age}歳です。");
    }

    Greeting("Spinel"); //1つめのGreeting
    Greeting("がびょう",17); //2つめのGreeting
どうでしょう？引数の数を変えただけでうまく処理が分かれたと思います。 賢いですね、パソコンって。

index / 次へ
プログラム言語「Spinel」
Copyright © 2005 - gabyou All Rights Reserved.
NOTES Software.