Top/Tips/関数の返り値を捨てる
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 ]

#author("2025-01-12T05:35:15+09:00","","")
[[Tips]]/関数の返り値を捨てる

関数を使用する際、返り値を変数に入れずにそのまま呼び出すと返り値が出力候補になり、~
トークに謎の「1」や「0」が表示されるなどのトラブルを引き起こすことがあります。

***問題が起きる例 [#z9dc242d]

例えば以下の辞書は1/2の確率でバルーンに「0」や「1」が表示されて頭を悩ませることになります。

 OnTeskTalk
 {
    //乱数のシードを設定
    SRAND( "ほげほげ" ) //SRAND関数は返り値を返すので出力候補になる。
 
    //サイコロを振る
    _num = RAND(6)
 
    "\0サイコロを振るよ!\1結果は(_num)だな。\e"
 }


***対策例 [#z9dc242d]

SRAND関数は返り値を返すので、適当な変数に代入させることで出力候補から外すことができます。

 OnTeskTalk
 {
    //乱数のシードを設定
    _hoge = SRAND( "ほげほげ" ) //SRAND関数の返り値を捨て変数に代入させる。
 
    //サイコロを振る
    _num = RAND(6)
 
    "\0サイコロを振るよ!\1結果は(_num)だな。\e"
 }


***voidを使用する方法 [#z9dc242d]

関数呼び出し時に「void」をつけることでも返り値を破棄することができます。~
代入ではない点に注意してください。(「=」が不要)

 OnTeskTalk
 {
    //乱数のシードを設定
    void SRAND( "ほげほげ" ) //SRAND関数の返り値を捨てる
 
    //サイコロを振る
    _num = RAND(6)
 
    "\0サイコロを振るよ!\1結果は(_num)だな。\e"
 }