プレイ日記
じゅん RSJunK
 グローバル変数の宣言は、実行されない行にあってもOKみたいですね。18行目は実行されないけれど、NUM2はグローバル変数として処理されていました。  (RUN直後の構文解析でメモリ確保されている?)  関数の中で静的変数(の代わりのグローバル変数)が使いたくなった場合に、ちょっと便利ですね。実行行まで戻らなくても、関数のすぐ上で宣言すればOKですので。  スコープが効かないので変数名被りに要注意である事は、全く変わりませんが...
2そうだね
プレイ済み
返信[1]
親投稿
MIKI ifconfig
var による宣言は実行前のコンパイルフェーズで行われます。 だだし、メモリ確保はされません。 シンボルテーブルに、変数であるとか配列であるとか登録されるだけ option 命令も同様で、実行されなくてもそこにあるだけで有効。 一方で var n = 10 と書くことは可能で、一見初期化に見えるけど、 これは var n ' 宣言(コンパイル時登録) n = 10 ' 代入(実行時処理) の二つの文をまとめたシンタクスシュガーです。 よって var n = 10 var x[n] は、一行目と二行目が「実行」されない限り、 len(x) == 10 とはならない。
0そうだね
プレイ済み