From: Inaba Hiroto Date: 1998-06-17T02:27:35+09:00 Subject: [ruby-list:8378] Re: what type are true and false From: "YANAGAWA Kazuhisa" Subject: [ruby-list:8377] Re: what type are true and false Date: Tue, 16 Jun 1998 20:23:13 +0900 > たとえば > > ruby-1,0 filnal: > eval "foo = 0" > print "#{foo}\n" > -> 0 > > が, > > ruby-1.1b9_6 以降(それ以前の 1.1 がないのでここまで): > eval "foo = 0" > puts foo > -> NameError > > なのは何でなの,とか? これは1.0と1.1の違いではなく "#{foo}"とfooの違いのようです。 仕様なのかバグなのかはわかりませんが。 % ruby -e ' eval "foo = 10" print "#{foo}\n" ' 10 % ruby -v ruby 1.1b9_25(98/06/11) [i486-linux] % cd .../src/ruby-1.0-971225 % ./ruby -e ' eval "foo = 10" puts foo ' -e:3: NameError: undefined local variable or method `foo' for main(Object) % ./ruby -v ruby - version 1.0-971225 (i486-linux) evalについては自分も聞きたいことがあります。 以下のようになるのはなぜでしょう? % ruby -e ' c = proc{x = 0; proc{print x,"(#{x})\n"}}.call x = 1 c.call p eval "x", c ' 0(1) 1 -- 稲葉 浩人 (inaba@st.rim.or.jp)