çåï¼ç¹ç°ã¯ã©ã¹ã®æ§æã®ä¸æè°
Rubyã®ç¹ç°ã¯ã©ã¹ã¯ä»¥ä¸ã®ããã«æ¸ãã¾ãã
class <<obj # ... end
ããã§ã"<< obj"ã¨ããæ§æã§ãç¹ç°ã¡ã½ãããå®ç¾©ããããã«ãobjã¨ããç¹å®ã®ã¤ã³ã¹ã¿ã³ã¹ã«åºæãªã¯ã©ã¹ããä»®æ³çã«æå®ãã¦ãã¾ãããããç¹ç°ã¯ã©ã¹ã§ãã
ã¨ããã§ãã©ãã㦠"<< obj"ã¨ããæ§æãªã®ã ããï¼ãã¨ããã®ãçåã§ããããããã¡ãããã ã®æ§æã¨ããã°æ§æãªã®ã§ãããããã§ä¸çå·ããããã風ã«ä½¿ãç©æ¥µçãªçç±ãããããããªãã£ãã®ã§ãã
ãã¨ãã°ãRubyã§ã¯ãã¯ã©ã¹ã®ç¶æ¿é¢ä¿ã¯"Child < Parent"ã¨è¡¨ç¾ãã¾ãããããããã¨ãä¸çå·ã®éãã¦ããã»ããç¶æ¿é¢ä¿ã§ã«ã¼ãã«è¿ãã
ç¶æ¿é¢ä¿ã¨ãã¯ã©ã¹ã»ã¤ã³ã¹ã¿ã³ã¹ã®é¢ä¿ã¯å¥ãªã®ã§ãç¶æ¿é¢ä¿ã¯ "<" ã§ãã¯ã©ã¹ã»ã¤ã³ã¹ã¿ã³ã¹ã®é¢ä¿ã¯ "<<" ã§è¡¨ç¾ãããã¨ã«ããã¨ã"ç¹ç°ã¯ã©ã¹ << ã¤ã³ã¹ã¿ã³ã¹" ããã "ã¤ã³ã¹ã¿ã³ã¹ << ç¹ç°ã¯ã©ã¹"ã®ã»ããã´ã£ããããã®ã§ãã
ç¹ç°ã¯ã©ã¹ã«ã¯ååããªãã®ã§ãããä»®ã«Îµã¨æ¸ãã¨ã
class ε >> obj # ... end
ã®ããã«æ¸ãã®ãèªç¶ã§ã¯ãªãããªãã¨æãã¾ãããããã§Îµãçç¥ããã¨ã
class >>obj # ... end
ãèªç¶ã§ã¯ã
åæãªèãã§ãããã¿ãªããã©ãæãã¾ããï¼
追è¨ï¼
sumimãããç¹ç°ã¯ã©ã¹ã®æ§æãåºã¦ãã[ruby-list:4677]ãæãã¦ãã ããã¾ããããããã¨ããããã¾ãã
ãããè¦ã¦æ°ã¥ããã®ã§ãããMatzããã¯ãã®ã¡ã¼ã«ã§ class << obj ã¨æ¸ãã¦ãã¾ãã(<< ã®åå¾ã«ã¹ãã¼ã¹)ãã§ãããªãã¸ã§ã¯ãæåã¹ã¯ãªããè¨èªRubyãã§ã¯ã<< ã®åã«ããã¹ãã¼ã¹ã¯ããã¾ãããã ããä½ã¨ããããã§ã¯ããã¾ããããã¡ã¢ã
追è¨ï¼
Matzããããããããã«ã³ã¡ã³ãï¼ã説æãããã ãã¾ãããæè¬ãã¾ãï¼
å ã ã¯ãã¯ã©ã¹ã®ããã«ãªãã¸ã§ã¯ããã¨ã®å±æ§ãåãæ±ãããã®place holderããå¼ãåºãã¦ããããã¨ãããã¥ã¢ã³ã¹ã§ã<<ããæ¡ç¨ãããã ã£ãããã«æãã¾ããå½æã®æ§æ³ã§ã¯ããã¯å®ã¯ã¯ã©ã¹ã§ã¯ãªãã£ãã®ã§ãã
ããå®è£ ã®é½åä¸ã¯ã©ã¹ãªãã¸ã§ã¯ãã使ã£ãããã®ã¾ã¾å®çãã¦ãã¾ãã¾ãããä»ã§ã¯ããã¯ç¹ç°ã¯ã©ã¹ã¨è¨ãã¯ã©ã¹ã§ããã¨ãããã¨ã§æ±ºçãã¦ãã¾ããä½è«ã§ãããå®ã¯ãç¹ç°ã¯ã©ã¹ãã¨ããåèªã®é©åãªè±è¨³ã¯ã¾ã è¦ã¤ãã£ã¦ãã¾ãããæ¥æ¬èµ·æºã®è¨èªãªãã§ã¯ã®åé¡ã§ããã
ç¾å¨ããsingleton classãã¨ãeigenclassããæ®æãã¦ããæãã§ããã
åè ã¯singleton patternã«ç»å ´ããã¯ã©ã¹ã¨ã®æ··åãèµ·ããã¨ããå対æè¦ããããå¾è ã¯ä¸è¦ãã¦æå³ãåãããªã人ãå¤ã(eigenã¯ãåºæã®ãã¨ããæå³ã®æ¥é è¾)ã¨ããå対æè¦ãããã¾ãã
追è¨ï¼èãã¦ã¿ãã°ãç¹ç°ã¯ã©ã¹ã¯ã¤ã³ã¹ã¿ã³ã¹ãããï¼ããã°æ³¥ç¸çã«ï¼ä½ããããããã§ã" << obj "ã®å½¢ãä½ã¨ãªãæ°æã¡ãåãã£ã¦ãã¾ããã
追è¨ï¼å¼¾ãããåå¿ã ãç¹ç°ã¯ã©ã¹ãã®ãã å
ãMatzããã¯ã©ããã¦ä¸¡æ¹ã®ææ³ãç¨æããã®ã ãããã¨å¼¾ãããæ¸ãã¦ããã£ãããã¾ããããç¹ç°ã¯ã©ã¹ã¯ç¹ç°ã¡ã½ããã®å®ç¾©ã«ä½¿ãã ãã§ã¯ãªããç¹ç°ã¡ã½ããã®aliasãä½ãã®ã«ã使ããã®ã§ã¯ãªãã§ãããããå®ã¯ãããrubycoã®å
ã
ã®çåã ã£ãã®ã§ã
追è¨ï¼å¼¾ããã®è¨äºã«ã¾ã¤ãã¨ããããã¡ã½ããå®ç¾©ä»¥å¤ã®æä½ããªãã¸ã§ã¯ããã¨ã«è¡ãããã£ãããã§ããã¨ã³ã¡ã³ããã¦ããããundefã¨ãaliasã¨ã宿°å®ç¾©ã¨ãã