# Object#singleton\_class

**URL:** <https://www.ruby-forum.com/t/object-singleton-class/133437>\
**Category:** Development\
**Created:** [March 31, 2008, 5:26pm UTC](https://www.ruby-forum.com/t/object-singleton-class/133437 "2008-03-31T17:26:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [March 31, 2008, 5:26pm UTC](https://www.ruby-forum.com/t/object-singleton-class/133437/1 "2008-03-31T17:26:24Z")

</div>

e$B$k$S$-$A$G$9!#e(B

e$B$=$m$=$mFC0[%/%i%9$rF@$k%a%=%C%I$rF3F~$7$F$bNI$$$N$G$O$J$$$G$7$g$&$+!)e(B  
e$BKh2s!Ve(B(class \<\< x; self;  
end)e$B!W$H=q$/$N$OH~$7$/$J$$$G$9$+$i!#e(B

e$BL\>A0$O$=$N$^$^!Ve(BObject#singleton\_classe$B!W$,$$$$$H;W$$$^$9!#e(B  
e$B$=$7$FJLL\>!Ve(BObject#eigenclasse$B!W!"!Ve(BObject#metaclasse$B!W$bM\_$7$$$G$9!#e(B

class Object  
def singleton\_class  
class \<\< self; self; end  
end  
alias eigenclass singleton\_class  
alias metaclass singleton\_class  
end

x = “a”  
class \<\< x; self; end # =\> #\<Class:#String:0xb7b2c700\>  
x.singleton\_class # =\> #\<Class:#String:0xb7b2c700\>  
x.eigenclass # =\> #\<Class:#String:0xb7b2c700\>  
x.metaclass # =\> #\<Class:#String:0xb7b2c700\>

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [March 31, 2008, 11:12pm UTC](https://www.ruby-forum.com/t/object-singleton-class/133437/2 "2008-03-31T23:12:55Z")

</div>

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

In message “Re: [ruby-dev:34191] Object#singleton\_class”  
on Tue, 1 Apr 2008 00:25:41 +0900, removed\_email\_address@domain.invalid writes:

|e$B$=$m$=$mFC0[%/%i%9$rF@$k%a%=%C%I$rF3F~$7$F$bNI$$$N$G$O$J$$$G$7$g$&$+!)e(B  
|e$BKh2s!Ve(B(class \<\< x; self; end)e$B!W$H=q$/$N$OH~$7$/$J$$$G$9$+$i!#e(B  
|  
|e$BL\>A0$O$=$N$^$^!Ve(BObject#singleton\_classe$B!W$,$$$$$H;W$$$^$9!#e(B  
|e$B$=$7$FJLL\>!Ve(BObject#eigenclasse$B!W!"!Ve(BObject#metaclasse$B!W$bM\_$7$$$G$9!#e(B

e$B5$;}$A$OJ,$+$j$^$9$,!"L\>A0$N9g0U$,$G$-$k$^$G$OF3F~$7$^$;$s!#e(B

- singleton\_classe$B"\*e(Bsingletone$B%Q%?!\<%s$KEP\>l$9$k%/%i%9!"$H$/e(B  
e$B$KI8=`E:IU$Ne(Bsingleton.rbe$B$GDj5A$5$l$F$$$ke(BSingletone$B%/%i%9e(B  
e$B%H$N:.F1$,$&$l$7$/$J$$e(B

- metaclase$B"_%a%?%/%i%9$H$OEAE}E_$K!V%/%i%9$N%/%i%9!W$r0UL#e(B  
e$B$9$k$,!"e(BRubye$B$G$OFC0[%/%i%9$O$b$C$H9-$$e(B

- eigenclasse$B"\*$3$l$,0lHV32$,\>/$J$$$,!"0UL#$,J,$+$k?M$O\>/?te(B  
e$BGI$9$.$k5$$,$9$ke(B

e$B$H$$$&$o$1$G!"e(Bruby-talke$B$r4^$a$F7\<LX3hF0$,I,MW$+$b$7$l$^$;$s!#e(B
