# Re: class local instance variable

**URL:** <https://www.ruby-forum.com/t/re-class-local-instance-variable/85838>\
**Category:** Development\
**Created:** [February 16, 2007, 6:19pm UTC](https://www.ruby-forum.com/t/re-class-local-instance-variable/85838 "2007-02-16T18:19:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Park\_Ji-In](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@Park\_Ji-In](https://www.ruby-forum.com/u/Park_Ji-In)\
**Post date:** [February 16, 2007, 6:19pm UTC](https://www.ruby-forum.com/t/re-class-local-instance-variable/85838/1 "2007-02-16T18:19:38Z")

</div>

e$B$3$s$P$s$O!#KQe(B e$B\<G0ue(B e$B$H?=$7$^$9!#e(B  
e$B=i$a$F$J$N$G$I$&$+$h$m$7$/$\*4j$$$7$^$9!#e(B

e$B\<B$O\>/$7A0$Ke(Btisphie at  
gmaile$B$G=q$$$?$b$N$,e(Barchivee$B$GJQ$K8+$($F$^$9!#e(B  
e$BK\Ev$K$9$_$^$;$s$G$7$?!#e(Butf-8e$B$N%a!\<%k$O$@$a$_$?$$$G$9!#2~$a$Fe(Biso-2022-jpe$B$G=q$-$^$9!#e(B(e$B$3$l$b%@%a$J$i$I$&$7$h$&e(B)

e$B\<!$N$h$&$Je(Bcodee$B$r\<B9T$7$F$\_$^$7$?!#e(B  
e$B$9$k$H!"e(B

mithrandir@losrorien ~/ruby/ruby-svn/trunk $ cat test2.rb  
class Merong  
def m  
@ **y** = “Yes!”  
end

end

m = Merong.new  
m.m  
m.instance\_eval { @ **x** = “Yes!” }  
puts m.instance\_variables.inspect

mithrandir@losrorien ~/ruby/ruby-svn/trunk $ ./miniruby test2.rb  
[:@ **x** /#\<Class:#Merong:0xb7ed95c4\>, :@ **y** /Merong]

e$B$3$&$J$j$^$7$?!#e(B

e$B2?$+e(Binstance\_evale$B$NCf$G$O$A$g$C$He(Bivar2e$B$,0c$&$h$&$J5$$,$7$^$9$,$"$l$,4V0c$C$?$H$9$l$P!"e(B@ **x** /Merong  
e$B$H$J$k$h$&$KD\>$7$?$ie(BSingletone$B$b85$N%3!\<%I$GF0$/$H;W$$$^$9!#e(B  
e$B$+$s$A$,$$$@$C$?$i$9$\_$^$;$s!#e(B

e$BF|K\8l$,2\<\<j$G$9!"$9$_$^$;$s!#BgL$K$_$F$/$@$5$$e(B

---

<div class="post-metadata">

**Author:** ![Park\_Ji-In](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@Park\_Ji-In](https://www.ruby-forum.com/u/Park_Ji-In)\
**Post date:** [February 17, 2007, 3:00am UTC](https://www.ruby-forum.com/t/re-class-local-instance-variable/85838/2 "2007-02-17T03:00:38Z")

</div>

e$B$J$+$@$G$9!#e(B

At Sat, 17 Feb 2007 02:18:00 +0900,  
Park Ji-In wrote in [ruby-dev:30363]:

> e$B2?$+e(Binstance\_evale$B$NCf$G$O$A$g$C$He(Bivar2e$B$,0c$&$h$&$J5$$,$7$^$9e(B  
> e$B$,$"$l$,4V0c$C$?$H$9$l$P!"e(B@ **x** /Merong e$B$H$J$k$h$&$KD\>$7$?$ie(B  
> Singletone$B$b85$N%3!\<%I$GF0$/$H;W$$$^$9!#e(B

ivar2e$B$,0c$&$N$O3N$+$J$N$G$9$,!"C1$K$=$l$@$1$G$O$9$^$J$$$N$G$O$Je(B  
e$B$$$+$H;W$$$^$9!#$?$V$s!"e(BSingletone$B$,F0$/$h$&$K$J$l$P$=$NI=\<($b4|e(B  
e$BBT$5$l$k$h$&$K$O$J$k$G$7$g$&$,!#e(B

e$B$H$j$"$($:J,$+$C$F$$$k$3$H$O!"e(B  
\*  
instance\_evale$BCf$HFC0[%a%=%C%ICf$G$Oe(Bget\_cref()e$B$NLa$jCM$,0c$&e(B

- e$BA0\<T$G$Oe(Blfp\_get\_special\_cref()e$B$,M-8z$@$,8e\<T$G$OL58ze(B  
e$B$/$i$$!#$b$7$+$7$?$i!“FC0[%a%=%C%IDj5A$N:]$Ke(Bcrefe$B$re(Bpushe$B$9$k$@$1e(B  
e$B$G$b$$$$$+$b$7$l$^$;$s$,!”$"$k$$$ODj?tC5:w$H6&DL$K$7$F$$$k$3$He(B  
e$B$,LdBj$J$N$+$b!#e(B

---

<div class="post-metadata">

**Author:** ![Park\_Ji-In](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@Park\_Ji-In](https://www.ruby-forum.com/u/Park_Ji-In)\
**Post date:** [February 17, 2007, 7:09am UTC](https://www.ruby-forum.com/t/re-class-local-instance-variable/85838/3 "2007-02-17T07:09:49Z")

</div>

ã¯ã˜ã‚ã¾ã—ã¦ã€‚ã„ãªã ã¨ç”³ã—ã¾ã™ã€‚

insntance\_eval  
ã®æ–¹ã¯èª¿ã¹ã¦ãªã„ã‚“ã§ã™ãŒã€ç‰¹ç•°ã‚¯ãƒ©ã‚¹ã§å®šç¾©ã•ã‚ŒãŸãƒ¡ã‚½ãƒƒãƒ‰ã‹ã‚‰ã€ã‚¯ãƒ©ã‚¹ãƒ­ãƒ¼ã‚«ãƒ«ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ãŒè¦‹ãˆã¾ã›ã‚“ã€‚ã‚µãƒ³ãƒ—ãƒ«ã‚³ãƒ¼ãƒ‰ã‚’æ·»ä»˜ã—ã¦ãŠãã¾ã—ãŸã€‚1.9.02007-02-16  
ã§å‹•ä½œç¢ºèªã—ã¦ã„ã¾ã™ã€‚

ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆç‹¬è‡ªã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚ã‚‹ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã®ã™ã¹ã¦ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹ã¹ãã§ã‚ã‚‹ã¨ã„ã†ã®ãŒæ­£ã—ã„ãªã‚‰ã€ã‚¯ãƒ©ã‚¹ãƒ­ãƒ¼ã‚«ãƒ«ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã¸ã‚‚ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹ã¹ãã§ã™ã€‚  
ä¸€æ–¹ã§ã€ã€Œã‚¯ãƒ©ã‚¹ãƒ­ãƒ¼ã‚«ãƒ«ã€ã‚’å­—ç¾©ã©ãŠã‚Šã«è§£é‡ˆã™ã‚‹ãªã‚‰ã€ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®ä¸€éƒ¨ã¨ã¯ã¿ãªã›ã¦ã‚‚ã‚¯ãƒ©ã‚¹ã®ä¸€éƒ¨ã¨ã¯è¦‹ãªã›ãªã„ã®ã§ã€ã‚¯ãƒ©ã‚¹ãƒ­ãƒ¼ã‚«ãƒ«ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å¤‰æ•°ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„ã¨ã„ã†ã®ã‚‚ç†å±ˆã§ã™ã€‚  
ã“ã®äºŒã¤ã¯ä¸¡ç«‹ã—ãªã„ã‚“ã§ã™ãŒã€ã©ã¡ã‚‰ã®è§£é‡ˆãŒæ­£ã—ã„ã‚“ã§ã—ã‚‡ã†ã‹ï¼Ÿå€‹äººçš„ã«ã¯å‰è€…ã®æ–¹ãŒç›´æ„Ÿçš„ã§å¥½ã¿ã§ã™ã€‚

class C  
def initialize  
@\_ccc = 47  
end  
def f  
@\_ccc  
end  
end

a = C.new

class \<\< a  
def g  
@\_ccc  
end  
end

p a.f # \<-- 47  
p a.g # \<-- nil

---

<div class="post-metadata">

**Author:** ![Park\_Ji-In](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/50afbb/32.png) [@Park\_Ji-In](https://www.ruby-forum.com/u/Park_Ji-In)\
**Post date:** [February 17, 2007, 11:27am UTC](https://www.ruby-forum.com/t/re-class-local-instance-variable/85838/4 "2007-02-17T11:27:05Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:30368] Re: class local instance variable”  
on Sat, 17 Feb 2007 15:08:57 +0900, “Makoto Inada”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B$O$8$a$^$7$F!#$$$J$@$H?=$7$^$9!#e(B

e$B$=$N@a$O$I$&$b!#e(B

|insntance\_eval  
|e$B$NJ}$OD4$Y$F$J$$$s$G$9$,!“FC0[%/%i%9$GDj5A$5$l$?%a%=%C%I$+$i!”%/%i%9%m!\<%+%k%$%s%9%?%s%9JQ?t$,8+$($^$;$s!#%5%s%W%k%3!\<%I$rE:IU$7$F$\*$-$^$7$?!#e(B1.9.02007-02-16  
|e$B$GF0:n3NG’$7$F$$$^$9!#e(B

e$B$3$l$O;d$N0U?^DL$j$NF0:n$G$9!#e(B

|e$B%_%V%8%'%/%HFH\<+$N%a%=%C%I$G$“$kFC0[%a%=%C%I$O!”%_%V%8%‘%/%H$N%$%s%9%?%s%9JQ?t$N$9$Y$F$K%“%/%;%9$G$-$k$Y$-$G$”$k$H$$$&$N$,@5$7$$$J$i!“%/%i%9%m!\<%+%k%$%s%9%?%s%9JQ?t$X$b%”%/%;%9$G$-$k$Y$-$G$9!#e(B  
|e$B0lJ}$G!"!V%/%i%9%m!\<%+%k!W$r;z5A$I$_$j$K2r\<a$9$k$J$i!"FC0[%a%=%C%I$O%_%V%8%’%/%H$N0lIt$H$O$_$J$;$F$b%/%i%9$N0lIt$H$O8+$J$;$J$$$N$G!“%/%i%9%m!\<%+%k%$%s%9%?%s%9JQ?t$K%”%/%;%9$G$-$J$$$H$$$&$N$bM}6~$G$9!#e(B  
|e$B$3$NFs$D$ON\>N)$7$J$$$s$G$9$,!"$I$A$i$N2r\<a$,@5$7$$$s$G$7$g$&$+!)8D?ME\*$K$OA0\<T$NJ}$,D\>46E\*$G9%$_$G$9!#e(B

e$B%/%i%9%m!\<%+%k%$%s%9%?%s%9JQ?t$O!“$=$N%a%=%C%I$,B0$7$F$$$k%/e(B  
e$B%i%9$NHO0OFb$G$7$+%”%/%;%9$G$-$J$$%$%s%9%?%s%9JQ?t$G$9!#%_%Ve(B  
e$B%8%'%/%H$NFC0[%a%=%C%I$,B0$7$F$$$k$N$O!"$=$N%_%V%8%'%/%H$K8Ge(B  
e$BM-$NFC0[%/%i%9e(B(singleton class or eigenclass)e$B$G$9$+$i!"$=$Ne(B  
e$BHO0OFb$GM-8z$G$9!#e(B

e$B$=$NFC0[%/%i%9$,=jB0$7$F$$$k%_%V%8%'%/%H$,!“$?$^$?$^%/%i%9$Ge(B  
e$B$”$C$?\>l9g$K$O!"$=$A$i$r%/%i%9%m!\<%+%k$NBP\>]$H$9$k$H$$$&e(B(e$B0pe(B  
e$BED$5$s$N$_$C$7$c$k!VA0\<T!W$Ne(B)e$B9M$(J}$b$o$+$i$J$$$G$b$J$$$G$9e(B  
e$B$,!"$A$g$C$H%k!\<%k$,J#;($G0l4S@-$N$J$$$b$N$K$J$k$h$&$J5$$,$7e(B  
e$B$^$9!#$I$&$G$7$g$&!)e(B

e$B$^!“%/%i%9JQ?t%”%/%;%9$G!VA0\<T!W$H;w$?$h$&$J$3$H$r$7$F$$$k$Ne(B  
e$B$G!"@dBP$K$@$a$@$H$O8@$$$^$;$s$,!#e(B

```
                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

```
