From: gotoken@... (GOTO Kentaro) Date: 1998-06-24T07:50:00+09:00 Subject: [ruby-list:8490] Re: scope of local variables ごとけんです In message "[ruby-list:8480] Re: scope of local variables" on 98/06/23, Takao KAWAMURA writes: >イテレータ内の変数って、一度ループを回るごとに未定義状態にな >るのでしょうか。毎回yieldされることを考えると当然そうなのか >な。 そうみたいですね。 ちょっとだけ紛らわしいのは for がイテレータでは なくて制御だということでしょうか。 >> 「普通の」ローカル変数は先頭で代入(宣言)しておく >> という「ローカル変数のオキテ」に従うことを強くお勧めします. > >そうなのですか…。rubyは宣言しなくていいから楽だなあと思って >いたのですが。だけど、配列とかハッシュだとどうせ宣言しないと >いけないし、宣言することで統一すればいいのかな。 変な話ですが変数の宣言をするための代入以外の 構文ってあると良いですね。 スクリプトでないプログラムのために。 >> Thread固有変数 >> 手続きオブジェクト固有変数 >> >> などのために必要なものです. > >なるほど。後者はまだこれから勉強しないとわからないのですが、 >前者の意味はわかります。 後者こそ yeild の引数なんかのことではないでしょうか? >> なお,rubyの変数の種別はそのスコープに代入(宣言)が存在するか >> どうかで決まり,代入が実行されるかどうかには関係ないという大 >> 切な原則を覚えておいて下さい.rubyは動的な言語のワリにはそう >> いう静的な部分も持ってます. それは ruby のような dynamics だと仕方無いと思います。 単に直観ですけど。 >まったく誤解していました。実行されるかどうかに依存すると。うー >む、rubyって奥が深いというか、私はあんまりわかっていないなあ。 >いつになったら片想い状態から脱っせるのかなあ。 ぼくも全く同感です。 # ruby 経験値強化週間 :-) -- gotoken