[ruby-list:50634] Re: instance_evalで定数が見えない
From:
MASAKI Yuhsuke <yek@...>
Date:
2017-12-29 09:48:32 UTC
List:
ruby-list #50634
=E5=86=85=E6=B5=B7=E3=81=95=E3=82=93=E3=80=81=E3=81=82=E3=82=8A=E3=81=8C=E3= =81=A8=E3=81=86=E3=81=94=E3=81=96=E3=81=84=E3=81=BE=E3=81=99=E3=80=82 =E3=80=8C=E3=81=82=E3=82=8C=E3=80=81=E3=81=A7=E3=82=82instance_eval=E3=81= =A7=E3=82=AF=E3=83=A9=E3=82=B9=E5=A4=89=E6=95=B0=E3=81=AB=E3=81=AF=E3=82=A2= =E3=82=AF=E3=82=BB=E3=82=B9=E3=81=A7=E3=81=8D=E3=81=9F=E3=82=88=E3=81=AD=E2= =80=A6?=E3=80=8D =E3=81=A8=E6=80=9D=E3=81=A3=E3=81=A6=E3=82=84=E3=81=A3=E3=81=A6=E3=81=BF=E3= =81=9F=E3=81=A8=E3=81=93=E3=82=8D=E3=80=81=E3=81=A7=E3=81=8D=E3=81=BE=E3=81= =9B=E3=82=93=E3=81=A7=E3=81=97=E3=81=9F=E3=80=82 =E3=81=AA=E3=82=8B=E3=81=BB=E3=81=A9=E2=80=A6 =E3=81=A8=E3=81=AA=E3=82=8B=E3=81=A8=E3=80=81=E3=80=8Cinstance_eval=E5=86= =85=E3=81=A7=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AE=E6=83=85=E5=A0=B1=E3=81=AB= =E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B9=E3=81=97=E3=81=9F=E3=81=84=E3=80=8D=E5= =A0=B4=E5=90=88=E3=81=AE=E3=80=81 =E3=81=A9=E3=81=86=E3=81=99=E3=82=8B=E3=81=AE=E3=81=8C=E8=89=AF=E3=81=84=E3= =81=A7=E3=81=97=E3=82=87=E3=81=86=E3=81=8B=E3=80=82 =E3=82=A2=E3=82=AF=E3=82=BB=E3=82=B5=E3=81=8B=E3=81=AA? You wrote: > =E5=86=85=E6=B5=B7@=E3=83=99=E3=83=AB=E3=82=AE=E3=83=BC=E3=81=A7=E3=81=99 >=20 > instance_eval=E3=81=AF=E3=81=9D=E3=81=AE=E5=90=8D=E5=89=8D=E3=81=AE=E3=81= =A8=E3=81=8A=E3=82=8A=E3=80=81=E3=82=A4=E3=83=B3=E3=82=B9=E3=82=BF=E3=83=B3= =E3=82=B9=E3=82=92 evaluate > =E3=81=97=E3=81=A6=E3=81=84=E3=82=8B=E3=81=AE=E3=81=A0=E3=81=A8=E8=80=83= =E3=81=88=E3=81=A6=E3=81=84=E3=81=BE=E3=81=99=E3=80=82 >=20 > =E3=81=AA=E3=81=AE=E3=81=A7=E3=82=AF=E3=83=A9=E3=82=B9=E5=AE=9A=E6=95=B0= =E3=82=92=E8=A6=8B=E3=81=9F=E3=81=91=E3=82=8C=E3=81=B0 >=20 > p self.class::CONST >=20 > =E3=81=A8=E3=81=99=E3=82=8C=E3=81=B0=E8=A6=8B=E3=82=8B=E3=81=93=E3=81=A8= =E3=81=8C=E3=81=A7=E3=81=8D=E3=81=BE=E3=81=99=E3=80=82 >=20 > =E5=AE=9A=E6=95=B0=E3=81=A0=E3=81=91=E3=81=A7=E3=81=AA=E3=81=8F=E3=82=AF= =E3=83=A9=E3=82=B9=E3=83=BB=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=81=AB=E3= =81=AA=E3=82=8A=E3=81=9D=E3=81=86=E3=81=AB=E8=A6=8B=E3=81=88=E3=82=8B=E3=82= =B3=E3=83=BC=E3=83=89 >=20 > def self.hi3 > p self.class::CONST > end >=20 > =E3=82=82=E3=80=81instance_eval=E5=86=85=E3=81=A7=E3=81=AF=E3=82=A4=E3=83= =B3=E3=82=B9=E3=82=BF=E3=83=B3=E3=82=B9=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89= =E3=81=AB=E3=81=AA=E3=82=8A=E3=81=BE=E3=81=99=E3=81=AD=E3=80=82 > =E4=B8=80=E8=A6=8B=E3=82=8F=E3=81=8B=E3=82=8A=E3=81=AB=E3=81=8F=E3=81=8F= =E6=80=9D=E3=81=88=E3=81=BE=E3=81=99=E3=81=8C=E3=80=81=E8=80=83=E3=81=88=E3= =82=8C=E3=81=B0=E3=83=AD=E3=82=B8=E3=82=AB=E3=83=AB=E3=81=A0=E3=81=A8=E6=80= =9D=E3=81=84=E3=81=BE=E3=81=99=E3=80=82 >=20 >=20 > On 2017/12/29 1:51, Yukihiro Matsumoto wrote: > > =E3=81=BE=E3=81=A4=E3=82=82=E3=81=A8 =E3=82=86=E3=81=8D=E3=81=B2=E3=82= =8D=E3=81=A7=E3=81=99 > >=20 > > =E5=AE=9A=E6=95=B0=E3=81=AE=E5=8F=82=E7=85=A7=E3=81=AF=E3=83=AC=E3=82= =AD=E3=82=B7=E3=82=AB=E3=83=AB=E3=81=AB=E6=B1=BA=E5=AE=9A=E3=81=95=E3=82=8C= =E3=81=BE=E3=81=99=E3=81=AE=E3=81=A7=E3=80=81instance_eval=E3=81=AA=E3=81=A9 > > =E3=81=A7=E3=81=AF=E5=A4=89=E5=8C=96=E3=81=97=E3=81=BE=E3=81=9B=E3=82= =93=E3=80=82 > >=20 > >=20 > > In message "Re: [ruby-list:50630] instance_eval=E3=81=A7=E5=AE=9A=E6=95= =B0=E3=81=8C=E8=A6=8B=E3=81=88=E3=81=AA=E3=81=84" > > on Fri, 29 Dec 2017 03:24:26 +0900, MASAKI Haruka <yek@reasonset.n= et> writes: =20 > >> > >> =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 (NameE= rror) > >> *** =20 > > =20 >=20