[#11357] [PATCH] an analogue of `long long' — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

18 messages 2000/11/01
[#11358] Re: [PATCH] an analogue of `long long' — matz@... (Yukihiro Matsumoto) 2000/11/01

まつもと ゆきひろです

[#11364] Re: [PATCH] an analogue of `long long' — EGUCHI Osamu <eguchi@...> 2000/11/02

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

[#11440] class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...>

[ruby-dev:11428] からの続きですが、threadは切りました。

14 messages 2000/11/08
[#11442] Re: class Character (was: Ruby I18N) — TAKAHASHI Masayoshi <maki@...> 2000/11/08

高橋征義です。用語について。

[#11443] Re: class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...> 2000/11/08

At Wed, 8 Nov 2000 20:44:55 +0900,

[#11520] A problem of Socket methods on Windows — OKA Toshiyuki <oka@...>

岡と申します。

22 messages 2000/11/15
[#11523] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11528] Re: A problem of Socket methods on Windows — matz@... (Yukihiro Matsumoto) 2000/11/15

まつもと ゆきひろです

[#11532] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11534] Re: A problem of Socket methods on Windows — OKA Toshiyuki <oka@...> 2000/11/15

岡です。

[#11535] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11538] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11662] IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org>

In article <E140cR3-0002ls-00@ev.netlab.zetabits.co.jp>,

22 messages 2000/11/28
[#11663] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#11664] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <E140fxW-0002u9-00@ev.netlab.zetabits.co.jp>,

[#11665] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <hvor93w5wb8.fsf@coulee.m17n.org>,

[#11669] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/29

In article <hvoofz05uwz.fsf@coulee.m17n.org>,

[#11672] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/29

まつもと ゆきひろです

[#11675] Re: IO (Re: fork problem?) — Koji Arai <JCA02266@...> 2000/11/30

新井です。

[#11677] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/12/01

まつもと ゆきひろです

[ruby-dev:11552] Re: [REQ] CGI#param (not CGI#params)

From: Wakou Aoyama <wakou@...>
Date: 2000-11-16 03:41:52 UTC
List: ruby-dev #11552
青山です。

On Thu, 16 Nov 2000 01:03:58 +0900,
Shugo Maeda <shugo@ruby-lang.org> wrote:

> しかし、一つしか値がない場合が多いと思われるので、
> 
> name = cgi.param("name")

そうですね。私は [0] を付けた方が 2 番目以降を捨てている、あるいは、対
応していない、と一目でわかって良いような気もしてわりと気に入っているの
ですが、

name, = cgi["name"]
name, = cgi.params["name"]

として多重代入を利用されている方もいらっしゃるようですし、確かに実際に
は最初の値だけを扱うという事で問題が無い場合がほとんどではありますよね。

name = cgi.param["name"]

は、私も良さそうだとは思いますが、これ、単純に cgi.params["name"][0]
を返すというだけで良いでしょうか?

cgi-lib.rb では、複数ある場合には、"\0" でつないでいます。これによって、
もし複数の場合には、それらがつながって得られるので、対応していなければ、
すぐに変だと気が付いて、問題が露見しやすいという利点がありました。

(もっとも、元の cgi-lib.pl では、それが目的ではなく、単に文字列の方が
配列より扱いやすかったからという事での仕様のような気はしますが。)

def cgi.param(name)
  @params[name].join("\0")
end

その他、もっと強制力を上げて、複数ある場合には Array を返してしまうの
はどうかというのも考えた事があります。

def cgi.param(name)
  if 2 < @params.size
    @params[name]
  else
    @params[name][0]
  end
end

こちらだと、複数の値が得られる場合に、それに対応していないとどこかでエ
ラーが発生するでしょうから、ほぼ強制的に問題に対応させるような仕様にな
りますね。

しかし、やはりちょっと強制力が強すぎるので、まあ、せいぜい join("\0")
程度でしょうか。

ちなみに、Perl の CGI.pm では、変数の型によって動作が変わり、スカラー
の場合には、単純に最初の値だけとしています。

@values = $query->param('foo');
$value  = $query->param('foo');


-- 
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>

In This Thread