[Namazu-users-ja 1211] Re: mknmzのプロトタイプ宣言

Tasamasa Teranishi yw3t-trns @ asahi-net.or.jp
2011年 6月 23日 (木) 21:49:45 JST


寺西です。

(2011/06/23 14:09), Shigekazu Aoyagi wrote:
> プロトタイプ宣言ですから、generate_uri()を呼び出すときに引数を間違えた
> 場合にデバッグを容易にするというメリットはあります。現状のソースに
> 呼び出し間違いがあるわけではありませんから、将来の変更時における
> 予防的措置という意味です。

プロトタイプ宣言はそういう意味ですよね。
ただ、Perl の言語仕様ゆえ C 言語ほどその効果が高くはないのです。
# 引数の個数の概念がちょっと違うから

今回の場合は可変引数なので、(;$$) と (@) の違いは、引数が最大2個
という情報が得られる以外はどちらも変わりません。

例えば、2個の引数を指定しないといけないところを 1個で指定して
いたり、1個の引数を指定しないといけないところを 2個で指定して
いるケースでは無力です。

それでも引数が最大2個を明記するが重要と判断するか、その程度なら
あまり意味がないと判断するかは難しいところです。

今回は可変引数の例でしたが、いずれにしろプロトタイプ宣言をあまり
過信しないで、引数の数はきちんと確認するという方針でやることに
どこかの時点でなったかと思います。
# HACKING-ja に書くべき内容ですね。

> と書きましたが、これも「動いているソースに手を入れる」ことですので
> 今強いて行わなければならないと言えばその通りです。ですので、こちらは
> 取り下げさせていただきます。

まぁ、そう言わずに。
直すかどうかは分かりませんが、問題点を指摘していただければ、
いろいろと検討はできるかと思います。

以上、よろしくお願いします。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E


Namazu-users-ja メーリングリストの案内