From: keiju@... (ÀÐÄÍ·½¼ù ) Date: 1997-02-15T05:59:09+09:00 Subject: [ruby-list:2139] Re: [BUG] for line in $< ã‘ã„ã˜ã‚…ï¼ SHLジャパンã§ã™. In [ruby-list :02138 ] the message: "[ruby-list:2138] Re: [BUG] for line in $< ", on Feb/15 01:09(+0200) matz@caelum.co.jp (Yukihiro Matsumoto) writes: >|line.rb:18: [BUG] Segmentation fault >|IOT trap >| >|ã—ã¾ã™(;_; > >ã™ã‚“ã¾ã›ã‚“. > >--- io.c~ Sun Feb 9 00:40:13 1997 >+++ io.c Fri Feb 14 23:38:30 1997 >@@ -1951,7 +1951,7 @@ > rb_define_method(cIO, "printf", io_printf, -1); > > rb_define_method(cIO, "each", io_each_line, -1); >- rb_define_method(cIO, "each_line", io_each_line, 0); >+ rb_define_method(cIO, "each_line", io_each_line, -1); > rb_define_method(cIO, "each_byte", io_each_byte, 0); > > rb_define_method(cIO, "syswrite", io_syswrite, 1); >@@ -2007,7 +2007,7 @@ > rb_define_readonly_variable("$ARGF", &argf); > rb_define_global_const("ARGF", argf); > >- rb_define_singleton_method(argf, "each", arg_each_line, 0); >+ rb_define_singleton_method(argf, "each", arg_each_line, -1); > rb_define_singleton_method(argf, "each_line", arg_each_line, -1); > rb_define_singleton_method(argf, "each_byte", arg_each_byte, > 0); å¹¾ã¤ã‹è³ªå•ãŒã‚りã¾ã™ [1] $<.type 上ã®ãƒ‘ッãƒã§å¤‰ã‚ã£ãŸã®ã¯, 第4パラメータã ã‘ã§ã™ãŒã“れã£ã¦ã©ã†ã„ã†æ„味 ãªã‚“ã§ã—ょã†? print $<.type ---- Object ã¨ãªã‚Šã¾ã™ãŒ, ã“れã¯ã©ã†ã„ã†æ„味ã§ã—ょã†ã‹? $<ã¯, 特異メソッドãŒå®šç¾©ã•れãŸã‚ªãƒ–ジェクトãªã®ã§ã—ょã†ã‹? [2] cloneã®å®šç¾© ã¾ãŸ, f = $<.clone ã¨ã™ã‚‹ã¨, $< ã¨åŒã˜ãƒ¡ã‚½ãƒƒãƒ‰ãŒä½¿ãˆã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ãŒ, cloneã¯ç‰¹ç•°ãƒ¡ã‚½ãƒƒ ド(特異クラス)を継承ã—ã¦ã„ã‚‹ã¨è€ƒãˆã¦è‰¯ã„ã®ã§ã—ょã†ã‹? [3] 特異クラスã®ç¶™æ‰¿ ã‚るオブジェクトã®ç‰¹ç•°ã‚¯ãƒ©ã‚¹ã‚’継承ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã¯cloneã—ã‹ãªã„ã®ã§ã—ょ ã†ã‹? [4] cloneã®å†å®šç¾© ã¾ãŸ, cloneも当然å†å®šç¾©ã§ãã¾ã™ãŒ, cloneã‚’å†å®šç¾©ã—ãŸå ´åˆã‚‚特異クラス㮠継承関係を維æŒã™ã¹ããªã®ã§ã—ょã†ã‹? cloneã‚’é©å½“ã«å†å®šç¾©ã™ã‚‹ã¨, ã“ã®ç¶™æ‰¿é–¢ä¿‚ã¯ç¶­æŒã§ãã‚‹ã¨ã¯é™ã‚Šã¾ã›ã‚“よã­. cloneã®å†å®šç¾©ã—ãŸã„å ´åˆ, 例ãˆã°ãƒ‡ãƒ•ォルトã®å‹•作ã¯ã‚·ãƒ£ãƒ­ã‚¦ã‚³ãƒ”ーã§ã™ãŒ, ディープコピーã«ã—ãŸã„ã¨æ€ã£ãŸã‚‰, 以下ã®ã‚ˆã†ã«ã¾ãšcloneã‚’ãŠã“ãªã£ã¦å®š 義ã—ãŸæ–¹ãŒè‰¯ã„ã®ã§ã—ょã†ã‹? def clone x = super # ã¾ãšã‚·ãƒ£ãƒ­ãƒ¼ã‚³ãƒ”ー x.deep_copy_sub(self) # 残りをコピーã™ã‚‹ãƒ¦ãƒ¼ã‚¶å®šç¾©ãƒ¡ã‚½ãƒƒãƒ‰ end [5] ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ¯”較 特異クラス(ã™ã¹ã¦ã®ç‰¹ç•°ãƒ¡ã‚½ãƒƒãƒ‰)ãŒä¸€è‡´ã™ã‚‹ã‹ã©ã†ã‹ã®åˆ¤æ–­ã¯ã§ãã‚‹ã®ã§ã—ょ ã†ã‹? __ .....................................石塚 圭樹@SHLジャパン(æ ª)... ------------->アドレス変ã‚りã¾ã—ãŸ!! e-mail: keiju@shljapan.co.jp <----