2009年7月 3日

[ruby-list:46155] Re: メソッドArgumentのParenthesisについて

From: Shingo Hagiwara <rindou@xxxxx>
Subject: [ruby-list:46154] メソッドArgumentのParenthesisについて
Date: Fri, 3 Jul 2009 21:51:04 +0900

るびきちです。

> Source補完機能を使ったとき、メソッドで「()」付きで補完される場合と、
> 「()」無しで補完される場合があります。

> 例えばですが、
> hoge arg1 arg2
> と補完される場合と、
> foo(arg1, arg2)
> と言う場合があると言うことです。
>
> この括弧の省略ができるというのは知っているつもりなのですが、
> この二つに何か差異はあるのでしょうか?

hoge arg1 arg2
ではなくて
foo bar arg1
ではないかと?
そのときは
foo(bar(arg1))
と同じ意味です。

hoge arg1, arg2

hoge(arg1, args2)
は等価です。

hogeとかfooではなくて実際のコード例を見てみたいものです。

> また、括弧を構文的に付けないことを許している理由はなんなのでしょうか?
> 個人的には括弧を付けないとBasicを思い出して非常に気持ちが悪い気がします。

記号を多くしすぎないことが理由だったと思います。
このおかげで可読性を上げることができます。

たとえば、Rakefile(Ruby版make)には、こんなふうに書けます。
ふつうのRubyスクリプトですが、括弧が省略可能なことと、ブロック構文の
絶妙な美しさのおかげで、設定用ミニ言語のように見えます。

file "foo.o" => "foo.c" do
sh "gcc -c foo.c"
end

もし、括弧を全部つけてしまうと、

file({"foo.o" => "foo.c"}) do
sh("gcc -c foo.c")
end

となり、見辛くなってしまいます。

もし、Rubyが括弧省略不可能でガチガチな言語ならば、好きになれません。
--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook


投稿者 xml-rpc : 2009年7月 3日 22:29
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86366
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。