はじめに
今回はVerseで関数を引数(変数)として渡し、渡した先で実行する
いわゆるコールバックを実装する方法の紹介です!
Verseでコールバックを実装する方法
早速ですがVerseでコールバックを実装するには「type{_(:引数) :返り値}」という形式で関数を渡します。
具体的には以下のような感じ。
OnBegin<override>()<suspends>:void= #コールバックとしてFinishを渡して実行 Play(Finish) #コールバックを渡す関数 Play(Callback : type{_(:string) :void}):void= Print("Play 実行") #渡されたコールバックの実行 Callback("コールバックを実行しました") #コールバックとして渡す関数 Finish(text : string):void= Print(text)
なお、引数を増やしたい時はカンマ区切りで増やします。
#stringとintの2つの引数を持つ場合 Play(Callback : type{_(:string, :int) :void}):void= Print("Play 実行") Callback("コールバックを実行しました", 10) Finish(text : string, value:int):void= Print(text)
また、引数を無くしたい場合は括弧の中身をなくし(voidにするのではなく)、
返り値を設定する事ももちろん可能です。
#引数を持たず、stringの返り値を持つ場合 Play(Callback : type{_() :string}):void= Print("Play 実行") text := Callback() Finish():string= return "Finish 実行"
なお、詳しい仕様が知りたい場合は以下の記事が参考になるかと思います。