[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:001226] Re: DCL toolbox
# なんだか堀之内さんにしか行ってなかったので、ついでに書き直
# して再送します。
At Mon, 24 Jun 2002 16:42:46 +0900,
Takeshi Horinouchi wrote:
> ところで、widget って良く聞くのですが、恥ずかしながら私は良くわ
> かってません。辞書的は規格品と書いてありますが、どうもその心が
> 分からない。ここでは、DCL のメソッドを組み合わせた(便利な)複合的
> なコマンドを提供するというのが目的ですが、widget は適当でしょう
> か。
widget は「ちょっとした部品」とか「小道具」くらいの意味で使
うことが多いと思います。「規格」に重きをおくことはあまりない
んじゃないでしょうか。
例えば zsh がインストールされているとこだと zshcompwid とい
う man page が引けるのですが、これは「zshcompwid - zsh
completion widgets」というタイトルで、具体的にはシェル変数と
組み込みコマンドからなっています。
まぁ、Util でも Tool でもいいですが、Util はもっと雑多なもの
も含む印象を受けます。Tool だと part ではない感じがする。ま、
あくまで個人的な印象ですが。
> うすればいいんでしょうか。先ほどのカラーバーの例で行けば、
>
> def color_bar(levels, colors, options) # ここで options はHash
>
> だったのを、
>
> def color_bar(levels, colors, options, default=DCL::Tool::ColobarOps)
>
> などとするのでしょうか。とすると、引数デフォルトは、基本的には、
> 使われないことが前提ですね。
そうですね。あと、この方法のメリットは、default を差し替える
だけで別のメソッドを仕立てることが出来る点です。例えば、
def color_bar(levels, colors, options = {}, default=DCL::Tool::ColobarOps)
...
end
に対してこういうことが出来るるわけです。
def ht_color_bar(levels, colors, options = {}, default=DCL::Tool::ColobarOps)
default.dup.update({....})
color_bar(levels, colors, options, ht_default)
end
それと、実引数の文法的な扱いはこうなります:
def a(x, y = {}, z = {3=>4})
p [x,y,z]
end
a(1) # [1, {1=>2}, {3=>4}]
a(1, 2=>3) # [1, {2=>3}, {3=>4}]
つまり dafault を実引数で指定したいときは、ハッシュを表すブ
レイス { } を一切省略できません。
-- Gotoken