2つの関数の、相互呼びだしの方法
投稿者: cfm_ 投稿日:2016/08/04 20:57
もともと、入力取得をした際(イベント発生時)に実行する関数内で、
もう一度入力を取得したい、という目的で考えた結果、考えた方法です。
相互呼び出しをする良い例が思いつかなくて、よくわからないスクリプトになりましたが、みていってほしいです。
追記(重要)
この部分は、今回の例では記述しなくても正常に動きますが、testA()を使う前にtestB()を使用した場合、「def testB()」の行を一度も通り過ぎていない、つまりtestB関数を読み込んでいないため、testB()の実行はエラー(関数が存在しません)となります。
ツイート
もう一度入力を取得したい、という目的で考えた結果、考えた方法です。
相互呼び出しをする良い例が思いつかなくて、よくわからないスクリプトになりましたが、みていってほしいです。
def testA() def testB() #cnt<5なら、"B"を追加, count+1, testA() if getVariable("count")<5 setVariable("count",getVariable("count")+1) setVariable("text",getVariable("text")+"B") testA() end end #start==trueなら関数を実行しない。(testB関数の読み込み用) if getVariable("start",true) then return false;end #cnt<5なら、"A"を追加, count+1, testB() if getVariable("count")<5 setVariable("count",getVariable("count")+1) setVariable("text",getVariable("text")+"A") testB() end end #testB関数を読み込む setVariable("start",true) testA() setVariable("start",false) #testA()の実行 setVariable("count",0) setVariable("text","") testA() #結果:ABABA speak(getVariable("text")) #testB()の実行 setVariable("count",0) setVariable("text","") testB() #結果:BABAB speak(getVariable("text"))
追記(重要)
#testB関数を読み込む setVariable("start",true) testA() setVariable("start",false)
この部分は、今回の例では記述しなくても正常に動きますが、testA()を使う前にtestB()を使用した場合、「def testB()」の行を一度も通り過ぎていない、つまりtestB関数を読み込んでいないため、testB()の実行はエラー(関数が存在しません)となります。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。