def内でvarで宣言した変数は、そのdef内だけで有効になります(ローカル変数という)。
defの外で同じ名前の変数を使っていたとしても、それとは別物になる。
var x=100 'def外の変数はグローバル変数
def f
? x 'これはグローバル変数を参照するので100を表示
var x 'ローカル変数を宣言、以下 def 終わりまで x という変数はこのローカル変数のこと
? x ' ローカル変数は 0 に初期化されるので0を表示
end
てな感じ。ローカル変数を使えば、グローバル変数を意図せず変化させてしまう危惧がなくなります。
def f(x) のように仮引数で宣言した変数もローカル変数になります。
ただし実引数として配列か文字列を渡した場合はちょっと注意が必要。(参照渡しということになるので・・・これは結構高度な概念)