[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:1991

From: Nobuhiro IMAI <nov@y...>
Date: Tue, 02 Mar 2010 02:49:52 +0900 (JST)
Subject: [ruby-reference-manual:1991] Re: [Bug #2800] IO.new の第2引数デフォルト

いまいです。

From: Kazuhiro NISHIYAMA <zn_at_mbf.nifty.com>
Date: Mon, 01 Mar 2010 10:24:32 +0900

> 西山和広です。
> 
> At Sun, 28 Feb 2010 00:44:05 +0900,
> Kouya wrote:
>> 
>> しかし、今回の場合、処理系によって、
>> デフォルトパラメータが変わってしまうし、はてさてどうしたものか?(@_@)
>> 
>> 気持ち的には、
>> -- IO.new(fd, mode = (fcntl(fd, F_GETFL) || "r")) -> IO
>> なんですが、 fcntl はRubyの関数ではないしなぁ。
>> この辺の書き方については、青木さんや、okkezさんが答えてくれるかもしれません。
>> 
>> 個人的には、
>> > --- IO.new(fd, [mode]) -> IO
>> でもいい気がします。
> 
> [] で書くなら
> --- IO.new(fd[, mode]) -> IO
> のような気がしますが、
> -- IO.new(fd, mode = "r") -> IO
> にしておいて処理系によっては "r" じゃないことがあると
> 説明に書いておくのはどうでしょうか?

そうですね。メソッドシグネチャだけ見て、デフォルトが "r" だと思い込ん
じゃうような人は IO.new は使わないだろう(←根拠はありません)、というこ
とで、メソッドシグネチャは触らずに、末尾のパッチのような記述を追加しよ
うと思います。いかがでしょうか?
--
Nobuhiro IMAI <nov@y...>
Key fingerprint = F39E D552 545D 7C64 D690  F644 5A15 746C BD8E 7106


diff --git a/refm/api/src/_builtin/IO b/refm/api/src/_builtin/IO
index 61f3dfc..b7aa057 100644
--- a/refm/api/src/_builtin/IO
+++ b/refm/api/src/_builtin/IO
@@ -279,6 +279,9 @@ IO.new, IO.for_fd 
 @param mode [[m:Kernel.#open]] と同じ形式で IO のモードを指定します。[[m:File::Constants::RDONLY]] などの
             定数(数値)でモードを指定できます。詳細は組み込み関数 [[m:Kernel.#open]] を参照
             してください。
+            mode は省略可能で、省略時のデフォルトのモードは、
+            fcntl(F_GETFL)が利用できる環境では第一引数で指定した fd のモードを引き継ぎ、
+            利用できない環境では "r" になります。
 #@else
 @param mode [[m:Kernel.#open]] と同じ形式で IO のモードを指定します(ただし、文字列形式のみ)。
             詳細は組み込み関数 [[m:Kernel.#open]] を参照してください。

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1986 2010-02-27 04:02 [redmine@r...        ] [Bug #2800] IO.new の第2引数デフォルト  
      1987 2010-02-27 15:12 ┗[kouyataifu4@g...    ]                                       
      1988 2010-02-27 15:57  ┗[nov@y...            ]                                     
      1989 2010-02-27 16:44   ┗[kouyataifu4@g...    ]                                   
      1990 2010-03-01 02:24    ┗[zn@m...             ]                                 
->    1991 2010-03-01 18:49     ┗[nov@y...            ]                               
      1992 2010-03-03 04:37      ┣[redmine@r...        ] [Bug #2800](Closed) IO.new の第2引数デフォルト
      1993 2010-03-03 04:42      ┗[nov@y...            ]                             
      1994 2010-03-03 17:34       ┗[kouyataifu4@g...    ]                           
      1995 2010-03-05 14:27        ┗[nov@y...            ]                         
      1997 2010-03-06 02:28         ┗[kouyataifu4@g...    ]                       
      1998 2010-03-06 05:52          ┗[nov@y...            ]