ごとけんです

In message "[ruby-list:8480] Re: scope of local variables"
    on 98/06/23, Takao KAWAMURA <kawamura / ike.tottori-u.ac.jp> writes:
>イテレータ内の変数って、一度ループを回るごとに未定義状態にな
>るのでしょうか。毎回yieldされることを考えると当然そうなのか
>な。

そうみたいですね。
ちょっとだけ紛らわしいのは for がイテレータでは
なくて制御だということでしょうか。

>>   「普通の」ローカル変数は先頭で代入(宣言)しておく
>> という「ローカル変数のオキテ」に従うことを強くお勧めします.
>
>そうなのですか…。rubyは宣言しなくていいから楽だなあと思って
>いたのですが。だけど、配列とかハッシュだとどうせ宣言しないと
>いけないし、宣言することで統一すればいいのかな。

変な話ですが変数の宣言をするための代入以外の
構文ってあると良いですね。
スクリプトでないプログラムのために。

>>   Thread固有変数
>>   手続きオブジェクト固有変数
>> 
>> などのために必要なものです.
>
>なるほど。後者はまだこれから勉強しないとわからないのですが、
>前者の意味はわかります。

後者こそ yeild の引数なんかのことではないでしょうか?

>> なお,rubyの変数の種別はそのスコープに代入(宣言)が存在するか
>> どうかで決まり,代入が実行されるかどうかには関係ないという大
>> 切な原則を覚えておいて下さい.rubyは動的な言語のワリにはそう
>> いう静的な部分も持ってます.

それは ruby のような dynamics だと仕方無いと思います。
単に直観ですけど。

>まったく誤解していました。実行されるかどうかに依存すると。うー
>む、rubyって奥が深いというか、私はあんまりわかっていないなあ。
>いつになったら片想い状態から脱っせるのかなあ。

ぼくも全く同感です。

# ruby 経験値強化週間 :-)

-- gotoken