コメント
このコメントは、【講座?】CoRを触ってみる05~Rma...へのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
akasata(投稿日:2017/02/15 21:02/15/17)
変数定義について補足です。
scene do - endの位置に変数定義がmain_music変数をupdateブロックで呼び出すことができなくなります。
scene do - endの位置に変数定義を書くことによって、createブロックでもupdateブロックでも変数が見えるようにすることができます。言い換えると、updateブロックで呼び出さないなら必要ないということになりますね。
以下、細かい話です(^^;
興味のある方だけどうぞ。。。
変数にはスコープの中でしか見えないという決まりがあります。
スコープというのは、変数の有効範囲という意味です。
CoR(mruby)では、変数はdo - endやdef - endの中がスコープということになります。(つまり、do - endの外側からは使えません。)
思わぬバグを回避するためにも、変数はできるだけ狭いスコープで使うほうが良いですが、必要に応じて、広いスコープをもたせることによって、いろいろなところで呼び出せて便利に使うこともできます。
scene do - endの位置に変数定義がmain_music変数をupdateブロックで呼び出すことができなくなります。
# 変数定義がない場合 scene 'start' do preload do music 'メインBGM', id: 317557 end create do main_music = add_music('メインBGM') end update do # ここでエラーになる # createブロックのmain_music変数はupdateブロックからは見えない main_music.play end end
scene do - endの位置に変数定義を書くことによって、createブロックでもupdateブロックでも変数が見えるようにすることができます。言い換えると、updateブロックで呼び出さないなら必要ないということになりますね。
以下、細かい話です(^^;
興味のある方だけどうぞ。。。
変数にはスコープの中でしか見えないという決まりがあります。
スコープというのは、変数の有効範囲という意味です。
CoR(mruby)では、変数はdo - endやdef - endの中がスコープということになります。(つまり、do - endの外側からは使えません。)
思わぬバグを回避するためにも、変数はできるだけ狭いスコープで使うほうが良いですが、必要に応じて、広いスコープをもたせることによって、いろいろなところで呼び出せて便利に使うこともできます。
scene do - endの位置に変数定義がmain_music変数をupdateブロックで呼び出すことができなくなります。
scene do - endの位置に変数定義を書くことによって、createブロックでもupdateブロックでも変数が見えるようにすることができます。言い換えると、updateブロックで呼び出さないなら必要ないということになりますね。
以下、細かい話です(^^;
興味のある方だけどうぞ。。。
変数にはスコープの中でしか見えないという決まりがあります。
スコープというのは、変数の有効範囲という意味です。
CoR(mruby)では、変数はdo - endやdef - endの中がスコープということになります。(つまり、do - endの外側からは使えません。)
思わぬバグを回避するためにも、変数はできるだけ狭いスコープで使うほうが良いですが、必要に応じて、広いスコープをもたせることによって、いろいろなところで呼び出せて便利に使うこともできます。