[ruby-list:50630] instance_evalで定数が見えない

From: MASAKI Haruka <yek@...>
Date: 2017-12-28 18:24:26 UTC
List: ruby-list #50630
=E6=AD=A3=E6=9C=A8=E3=81=A7=E3=81=99=E3=80=82

Ruby 2.2=E3=81=AE=E3=81=A8=E3=81=8D=E3=81=AB=E3=82=82=E8=A8=80=E5=8F=8A=E3=
=81=97=E3=81=9F=E3=81=AE=E3=81=A7=E3=81=99=E3=81=8C=E3=80=812.5=E3=81=A7=E3=
=82=82=E5=A4=89=E3=82=8F=E3=81=A3=E3=81=A6=E3=81=84=E3=81=AA=E3=81=84=E3=81=
=AE=E3=81=A7=E5=86=8D=E5=BA=A6=E3=81=8A=E8=81=9E=E3=81=8B=E3=81=9B=E4=B8=8B=
=E3=81=95=E3=81=84=E3=80=82
=E3=82=A4=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=B3=E3=82=B9=E3=81=AE=E7=89=B9=E7=
=95=B0=E3=82=AF=E3=83=A9=E3=82=B9=E5=86=85=E3=81=A7=E3=81=AF=E8=A6=8B=E3=81=
=88=E3=82=8B=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AE=E5=AE=9A=E6=95=B0=E3=81=8C=
=E3=80=81instance_eval=E3=81=A7=E3=81=AF=E8=A6=8B=E3=81=88=E3=81=BE=E3=81=
=9B=E3=82=93=E3=80=82

=E3=81=93=E3=82=8C=E3=81=AF=E7=84=B6=E3=82=8B=E3=81=B9=E3=81=8D=E6=8C=99=E5=
=8B=95=E3=81=AA=E3=81=AE=E3=81=A7=E3=81=97=E3=82=87=E3=81=86=E3=81=8B=E3=80=
=82

***
=E3=82=B3=E3=83=BC=E3=83=89:

class ClassA
  CONST=3D"Hello"
end

obj =3D ClassA.new

class <<obj
  def hi1
    p CONST
  end
end

obj.instance_eval do
  def hi2
    p CONST
  end
end


=E7=B5=90=E6=9E=9C:

"Hello"
Traceback (most resent call last):
        1: fron instance_eval_test.rb:20:in `<main>'
instance_eval_test.rb:15:in `hi2': uninitialized constant CONST (NameError)
***

In This Thread

Prev Next