メソッド

※このページのサンプルは体裁を整えるため全角スペースを使用しています
MysticSLのメソッド概念
メソッドは#methodで定義されたラベルとMethodReturnのまとまりです。
呼び出し時に与えられた引数をメソッド内で使用する場合はArgument変数を使用します。この変数は内部で定義済みです。
またメソッドラベルには、通常のラベルと区別するため~(チルダ)を付けることを推奨します。

サンプル
#method [TestMethod, 2, *~TestMethod]

    TestMethod [1, 2]
    Exit

*~TestMethod
    Print ["引数1=" + Argument0 + "\n引数2=" + Argument1]
    Wait [5000] '5秒間待ちます
    MethodReturn



参照渡し
引数に変数を指定した場合、参照渡しになります。参照渡しとは、メソッドから値を返すことができることを指します。
以下のサンプルでは、第1引数に渡した値を2倍して第2引数へ返します。

サンプル
#method [TestMethod, 2, *~TestMethod]
Integer [kekka]

    TestMethod [4, kekka]
    Print [kekka]
    Wait [5000]
    Exit

*~TestMethod
    Argument1 = Argument0 * 2 '引数へ代入することで返します
    MethodReturn



再帰呼び出し
再帰呼び出しとは、あるメソッドの実行中にさらに同じメソッドを呼び出すことです。
変数等の値はメソッドごとに保持しているため、メモリの空き容量が許す限り何度でも呼び出すことが出来ます。

サンプル
#method [TestMethod, 1, *~TestMethod]
Integer [a]
   a = 3
   TestMethod [a]
   Print [a]
   Wait [5000]
   Exit

*~TestMethod
Integer [m]
   m = Argument0 * 2
   If [m < 100]
      TestMethod [m] '自分を呼び出します
   EndIf
   Argument0 = m
   MethodReturn

オーバーライド

メインへ