[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>

西@九大です。

25 messages 1999/10/07
[#7969] Re: array .{first, last, at} — nobu.nakada@... 1999/10/07

なかだです。

[#7983] Re: array .{first, last, at} — Kazunori NISHI <kazunori@...> 1999/10/12

西@九大です。

[#7984] Re: array .{first, last, at} — matz@... (Yukihiro Matsumoto) 1999/10/12

まつもと ゆきひろです

[#7985] [patch] Array#delete_at w/ minus value — EGUCHI Osamu <eguchi@...> 1999/10/12

えぐち@エスアンドイーです。

[ruby-dev:7965] [PATCH?] ArgumentError in 'test' with 3 args

From: Ryuichi Tamura <tam@...3.kais.kyoto-u.ac.jp>
Date: 1999-10-06 00:52:12 UTC
List: ruby-dev #7965
田村龍一と申します.このようなことを投稿するのは初めてで,要領を得ない
ところがありましたら御容赦ください.

3つの引数をとる test(cmd, file1, file2) の挙動が2つの引数をとる場合と
違っています:

-rw-r--r--   1 tam      tam          6298 Oct  5 04:20 .emacs
-rw-r--r--   1 tam      tam         14093 Sep 12 21:11 .jedrc

という2つのファイルに対してfalseを期待して '?=', '?>', '?<' の3つのテ
ストを行なうと,

irb(main):064:0> test(?>,'/home/tam/.jedrc','/home/tam/.emacs')
ArgumentError: unknown command ?>
(irb):64:in `test'
(irb):64:in `irb_binding'
irb(main):065:0> test(?<,'/home/tam/.emacs','/home/tam/.jedrc')
ArgumentError: unknown command ?<
(irb):65:in `test'
(irb):65:in `irb_binding'
irb(main):066:0> test(?=,'/home/tam/.emacs','/home/tam/.jedrc')
ArgumentError: unknown command ?=
(irb):66:in `test'
(irb):66:in `irb_binding'

と,ことごとくArgumentError で叱られてしまいます.ここでは2つの引数の
ときと同様 'false' が返されると期待してしまうのはいけないのでしょうか….
すなわち,`file.c` の `test_b()` などでの値の戻しかたと同様に,

--- archive/ruby-1.4.2/file.c	Thu Sep 16 18:40:32 1999
+++ ruby-1.4.2/file.c	Wed Oct  6 08:25:58 1999
@@ -1521,20 +1521,20 @@
 	  case '-':
 	    if (st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino)
 		return Qtrue;
-	    break;
-
+            return Qfalse;
+                        
 	  case '=':
 	    if (st1.st_mtime == st2.st_mtime) return Qtrue;
-	    break;
-
+	    return Qfalse;
+                        
 	  case '>':
 	    if (st1.st_mtime > st2.st_mtime) return Qtrue;
-	    break;
-
+	    return Qfalse;
+            
 	  case '<':
 	    if (st1.st_mtime < st2.st_mtime) return Qtrue;
-	    break;
-	}
+	    return Qfalse;
+        }
     }
     /* unknown command */
     rb_raise(rb_eArgError, "unknown command ?%c", cmd);


としたらいけないのでしょうか??

-- 
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  Ryuichi Tamura
	Department of Natural Resource Economics, 
		Kyoto University, Kyoto, JAPAN. 

	e-mail : tam@kappa3.kais.kyoto-u.ac.jp
	URL    : http://kappa3.kais.kyoto-u.ac.jp/~tam/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

In This Thread

Prev Next