[PHP-users 13662] Re: "one true brace"表記とは?

Mashiki php-users@php.gr.jp
Mon, 03 Mar 2003 14:59:50 +0900


 Mashikiです。

重松さん情報ありがとうございます。

インデント (段下げ) の名前のことだったんですね。


そのあとの説明がよくわからなかったのですが、

・「one true brace style」は通常、K&Rスタイルのことをさす。
・「one true brace style」にはK&R、Linux風、BSD style、
  GNU styleなどのバリエーションがある。

のどちらなのでしょうか。


>インデント (段下げ) の名前です。
>
>one true brace style (1tbs):
>
>	if (cond) {
>	    statement;
>	}
>
>のような感じ。普通は K&R とか karnel とかいうと思われます。
>ちなみに私はこれ。(誰も聞いてない?)
>
>正確には、
>
>	int ClassFoo::function(const ClassBar& rBar)
>	{
>		if (rBar.condition()) {
>			doStuffs();
>		} else {
>			doSomeOtherStuffs();
>		}
>	}
>
>のように書くのですが、Linux 風のようです。
># man indent によると。:)
>
>ただ、これだと、if に else で条件を追加したときに、
>きれいに diff が取れないので、
>
>	if (cond) {
>	}
>	else {
>	}
>
>にしようかなと思う今日この頃。

diffの結果はなるほどとおもうのですが、不思議なきり方を
してくれたりしますね。
この書き方、「else {」の前に長いコメントを入れたばあい、
前のifの影響範囲がわかりにくくなる可能性ありそう。

>
>
>BSD style:
>
>	if (cond)
>	{
>	    statement;
>	}
>
>Allman style ともいいます。Hacker の Eric Allman にちなんでるらしい。
>昔はこうでした。
>
>GNU style:
>	if (cond)
>	  {
>	    statement;
>	  }
>GNU のツール類で使われている段下げ。
>個人的には好きでない。;)
>
>このほかにもいろいろあるみたいですね。
>
>それはそうと、ちと脱線ですが、昔、吐き気がするような汚い PHP スクリプトを
>きれいにするには、というスレッドがあったと思うのですが、
>GNU indent に食わせたところ、それなりに処理してくれることがわかりました。
>
>ただし、
>
>	$buf = $hoge;
>	$buf .= $uge;
>
>とか、foreach($myArray as $key => $val) {;} だとか、
>here document だとかは、処理できませんが。