以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/Verse_Function_Defaultより取得しました。


関数の引数にデフォルト値を設定する方法【UEFN】【Verse】





はじめに

今回はVerseで「関数に渡す値が基本的には同じだけどたまに変えたい」という時に使える

関数の引数にデフォルト値を設定する方法の紹介です!


関数の引数にデフォルト値を設定する方法

早速ですが関数の引数にデフォルト値を設定するは、引数名の前に?を付けます。

なお、引数をデフォルトと違う値にする場合は「?引数名 := 値」という形で設定します。

#numというデフォルトが0の引数を設定した関数
Sample(?num : int = 0):void=
    Print("num : {num}")
#何も指定しなければnumは0
Sample()

#numを1に設定して実行
Sample(?num := 1)


もちろん、複数の引数にデフォルト値を設定する事も可能で、

この場合は一つだけ値を変えるという事もできます。

#numとtext、2つの引数共にデフォルト値がある関数
Sample(?num : int = 0, ?text : string = "abc"):void=
    Print("num : {0}, text : {text}")
#両方指定してもいいし
Sample(?num := 1, ?text := "abc")

#片方だけ指定する事もできる
Sample(?text := "abc")


さらに型の前にも?を付ける事でデフォルト値が無し(失敗, false)にする事も出来ます。

#Agentはデフォルト無し
Sample(?Agent : ?agent = false):void=
    #Agentが入力されているかのチェック
    if(AgentEntity := Agent?):
        Print("Agentあり")
#そのまま実行すればAgentは無し
Sample()

#Agentを指定する場合の実行方法
Sample(?Agent := option{Agent})


また、前回紹介したコールバックを実装する方法と合わせれば、



必要な時だけコールバックを設定出来る関数も作れます。

#必要な時だけコールバックを設定出来る関数
Sample(?Callback : ?type{_() :void} = false):void=
    #コールバックが入力されていれば実行
    if(CallbackEntity := Callback?):
        CallbackEntity()

Finish():void=
    Print("Finish")
#コールバックが無い場合
Sample()

#コールバックを設定する場合
Sample(?Callback := option{Finish})






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/Verse_Function_Defaultより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14