「イベント」の版間の差分
ページの作成:「イベントとはプログラム内でなんらかの動作、出来事が発生したことを知ることを目的としたプログラミング手法です。 プロ…」 |
編集の要約なし |
||
3行目: | 3行目: | ||
AliceScriptのイベントは、デリゲートを用いて実現することができます。次の例ではコンソールにオブジェクトを出力するイベントデリゲート<code>Output</code>とイベントが発生したときに呼び出される<code>OnOutput</code>関数を定義し、最後に<code>”Hello,World”</code>を渡して<code>Outputted</code>イベントを発生させます。 | AliceScriptのイベントは、デリゲートを用いて実現することができます。次の例ではコンソールにオブジェクトを出力するイベントデリゲート<code>Output</code>とイベントが発生したときに呼び出される<code>OnOutput</code>関数を定義し、最後に<code>”Hello,World”</code>を渡して<code>Outputted</code>イベントを発生させます。 | ||
var Output = delegate.Activate(); | var Output = delegate.Activate(); | ||
function OnOutput( | function OnOutput(v) | ||
{ | { | ||
print(v); | print(v); | ||
} | } | ||
Output += OnOutput; | Output += OnOutput; | ||
Output(“Hello,World”);//出力例:Hello,World | |||
もちろん、イベントの購読にデリゲートを使うこともできます。上の例をラムダ式を使ってより簡潔に記述すると次のようになります。 | |||
var Output = new Delegate(); | |||
Output += (v) => print(v); | |||
Output(“Hello,World”);//出力例:Hello,World | Output(“Hello,World”);//出力例:Hello,World |