From: Yukihiro Matsumoto Date: 2009-06-08T07:03:54+09:00 Subject: [ruby-dev:38578] Re: Arrary.newにbreakを含むブロックを渡した時の挙動について まつもと ゆきひろです In message "Re: [ruby-dev:38576] Arrary.newにbreakを含むブロックを渡した時の挙動について" on Mon, 8 Jun 2009 03:59:04 +0900, Hirotsugu Asari writes: |題目に沿ってArrayを生成しようとしてbreakするとbreakに |渡された値が無条件に返ってきます。これは仕様で |しょうか。 ブロックでbreakするとその値が返るのは仕様です。 |しかしながら、これですと | |$ ruby -ve 'a=Array.new(3) {|i| break 3 if i==2; i*i}; puts a.class.inspect' |ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] |Fixnum |$ ruby19 -ve 'a=Array.new(3) {|i| break 3 if i==2; i*i}; puts a.class.inspect' |ruby 1.9.2dev (2009-06-03 trunk 23623) [i386-darwin9.7.0] |Fixnum | |という具合になって、よろしくないと思います。 | |(何がこのブロックでやりたいのかよく解んないです |けど。) なにがやりたいかわからないので、なにがよろしくないのかわから ないです。なにか「よろしくない」のであれば、もうちょっと具体 的にお願いします。