DEF~END
ユーザー関数・ユーザー命令を定義する
関数として定義
DEF name([arg[,arg…]])
…
END
命令として定義
DEF name [arg[,arg…]] [OUT var[,var…]]
…
END
パラメーター
name:関数・命令の名前
arg:パラメーターを格納する変数
戻り値
var:戻り値
解説
ユーザー定義関数もしくは命令を定義します。
GOSUBと違い、パラメータを渡し、戻り値を得る事ができます。
ただし、ユーザー定義命令では複数の戻り値を設定することができますが、ユーザー定義関数で得られる戻り値は1つだけです。
nameで使用できるのは、既に関数・命令・システム予約変数などで使用されていないもののみです。
ただし、以下の場合はDEF内だけの独立した変数として扱われます。(ローカル変数)
具体例はサンプルコードをご覧下さい。
「OUT」以降に指定した変数には、DEF内で必ず値をセットする必要があります。
セットしなかった場合は、エラー[48]「Uninitialized variable used」となります。
GOSUBと違い、パラメータを渡し、戻り値を得る事ができます。
ただし、ユーザー定義命令では複数の戻り値を設定することができますが、ユーザー定義関数で得られる戻り値は1つだけです。
nameで使用できるのは、既に関数・命令・システム予約変数などで使用されていないもののみです。
DEF内で使用する変数について
DEF内で使用する変数は、DEFの外で使用されている変数の値がそのまま使用されます。(グローバル変数)ただし、以下の場合はDEF内だけの独立した変数として扱われます。(ローカル変数)
具体例はサンプルコードをご覧下さい。
「OUT」以降に指定した変数には、DEF内で必ず値をセットする必要があります。
セットしなかった場合は、エラー[48]「Uninitialized variable used」となります。
サンプルコード
ユーザー定義関数
実行結果PRINT TASHIZAN(2,3) '2と3をパラーメーターとして渡し、結果を画面に表示するDEF TASHIZAN(X,Y) 'パラメーターとしてXとYを受け取るRETURN X+Y '渡されたパラメーターを足し算して返す(戻り値)
5
ユーザー定義命令
実行結果X=2:Y=3IDOU X,Y OUT NX,NY '2と3をパラーメーターとして渡すPRINT NX,NY '結果を画面に表示NX=X+1 '渡された値から戻り値を算出NY=Y+2
3 5
DEF内の変数についての注意
★DEF内で変数を「DIM」で宣言しなかった場合実行結果A$="AAA"PRINT TASHIZAN(2,3) '2と3をパラーメーターとして渡し、結果を画面に表示するPRINT A$DEF TASHIZAN(X,Y)A$="BBB" '最初の「A$」の内容を書き換えているRETURN X+Y
★DEF内で変数を「DIM」で宣言した場合5BBB
実行結果A$="AAA"PRINT TASHIZAN(2,3) '2と3をパラーメーターとして渡し、結果を画面に表示するPRINT A$DEF TASHIZAN(X,Y)DIM A$ '上とは関係のない別の「A$」という一時変数が作られる。このDEFが終わると消える。A$="BBB" 'これは最初の「A$」とは別物なので影響しないRETURN X+Y
最初の「A$="AAA"」の内容を表示している5AAA
参照
DEF~END
ユーザー関数・ユーザー命令を定義する
COMMON DEF~END
別SLOTから呼び出せるユーザー定義関数・命令を定義する
CALL
1.ユーザー定義関数/命令を呼び出す
2.コールバック処理をする