制御関数 - stuncloud/UWSCR GitHub Wiki
実装バージョン: 0.0.4
指定した秒数スクリプトの実行をブロックします
sleep(秒数)
変数名 | 型 | 種別 | 説明 |
---|---|---|---|
秒数 | 数値 | 必須 | 0以上の数値 |
渡された文字列を評価し、式として評価された場合はその値を返します
評価値 = eval(文字列)
変数名 | 型 | 種別 | 説明 |
---|---|---|---|
文字列 | 文字列 | 必須 | 評価する文字列 |
評価値 | 値 | 戻り値 | 評価した式が返す値 |
EMPTY | 文を評価した場合 |
a = 1
eval("a = 5") // = で代入できる
for i = 0 to 3
print a
eval("if a > 3 then a -= 1 else a += 1") // 単行IF
next
print a
UWSCとは異なり文を評価できます
例: if文や代入などができる
対応バージョン: 0.1.5
故意に実行エラーを発生させます
raise(エラーメッセージ ,タイトル="User defined error")
変数名 | 型 | 種別 | 説明 |
---|---|---|---|
エラーメッセージ | 文字列 | 必須 | エラー表示されるメッセージ |
タイトル | 文字列 | 省略可 | エラーのタイトル |
try
print 1
raise("エラーが発生しました")
print 2
except
print TRY_ERRMSG
endtry
// 結果
1
User defined error: エラーが発生しました
2つの値を比較し、一致していない場合はエラーになる
assert_equal(値1, 値2)
変数名 | 型 | 種別 | 説明 |
---|---|---|---|
値1 | 任意 | 必須 | 任意の値 |
値2 | 任意 | 必須 | 比較する値 |
dim a = 5, b = a, c = a * 2
assert_equal(a, b) // 一致するので何も起こらない
assert_equal(b, c) // [assert_equalエラー] left: 5; right: 10
対応バージョン: 0.1.8
関数を非同期に実行するタスクを返します
タスク = Task(func, [args, ...])
変数名 | 型 | 種別 | 説明 |
---|---|---|---|
func | 関数 | 必須 | 非同期実行させるユーザー定義関数 |
args | 値 | 省略可 | 非同期実行させるユーザー定義関数に渡す引数 (最大20個指定可) |
タスク | タスク | 戻り値 | 実行中のタスク |
使用例はWaitTaskを参照
対応バージョン: 0.1.8
タスクの終了を待ち、関数の戻り値を得ます
結果 = WaitTask(task)
変数名 | 型 | 種別 | 説明 |
---|---|---|---|
task | タスク | 必須 | 実行中のタスク |
結果 | 値 | 戻り値 | 非同期実行した関数の戻り値 |
function MyTask(wait: number)
for i = 1 to wait
sleep(1)
print "タスク実行中: " + (wait - i)
next
result = "タスク実行完了: <#wait>秒待ちました"
fend
t = Task(MyTask, 5)
print "タスクを開始しました"
print "タスクは非同期で実行されるため、その間別の処理を行えます"
print "WaitTaskを呼ぶと処理をブロックし、タスクの完了を待ちます"
print "タスクが完了するとresultの値を得られます"
print WaitTask(t)