ごとけんです
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