【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】at TECH
【Perl,PHP】LLバトルロワイヤル6【Ruby,Python】 - 暇つぶし2ch356:デフォルトの名無しさん
09/07/03 15:05:25
Rubyは local や my といった予約語を使わずに、文脈上でスコープを定義する
ブロック内に変数が出現したとき、その時点で可視かどうかで

 可視  → その変数を使う(つまり、書き換える)
 不可視→ 新規変数(ブロックローカル)として定義する

という動作になってる

>>346では [1, 2, 3].each のブロック内での s は可視なので、変数を単に再利用する
これを最初から不可能にすることもできなくはなかったんだが、そうすると

out = 外部データ'
someblock do |s|
 puts out #=> undefined
end

というように、ブロック外の変数にアクセスする方法がなくなってしまう


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch