dポイントプレゼントキャンペーン実施中!

ソースコード内のインデント方法は、タブを使う方法とスペースを使う方法があると思いますが、どちらが推奨されていますでしょうか?

私が思うには、タブとスペースが混用されてしまうのが問題であってどちらか一つに使うものを統一さえすれば、あまり問題ではないと思っています。

A 回答 (3件)

現在の一般的な開発環境では、両方を使い分けることが良いと思います。


スペースのみではどの環境でもインデントが保障されますが手間がかかりますし、タブのみではインデントが使用するエディタによって狂ってしまうからです。
具体的には、各縦列を揃える時にタブを使用し、同じ縦列の中で位置を調整する時はスペースを使用します。
例えば、

if(・・・)
{
 if(・・・ &&
   ・・・)
 {
 }
}

と書く場合は、

→if(・・・ &&
→___・・・)

『→』の部分にタブを使用し、『_』の部分はスペースを使用します。
こうすれば、どの環境でもインデントが整います。

参考URL:http://ameblo.jp/argv/entry-10000625613.html
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

これは妥当な現実解ですね。
感心しました。この方法を試用してみます。

お礼日時:2008/02/10 10:43

Pythonなんかの「インデントが構文を構成している」ような言語ではタブ/スペースどちらでも効果は変わらなかったと思います。


ただし、推奨は「スペース」だったんじゃなかったかな?確かそうだった、と記憶しています。

ただ、自動インデント機能付きのエディタで書く事が多いんで、あまり意識はしませんね。
例えばEmacsでしたら[ctrl]+[j]で勝手にインデントしてくれるんで、どっち使ってるんでしょう(笑)?
いずれにせよ「自動インデント機能」は色々な意味でテキストエディタの「必須機能」になっていると思いますよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

「自動インデント機能」の挙動は、各エディタ依存なのでしょうか?
各エディタ依存だとすると、この機能を全員が使っても、
エディタの種類が違うと、ずれてきそうな気が・・

お礼日時:2008/02/10 10:37

COBOLの時代には、スペースを使うことが要請(推奨ではない)されていました。


これは、タブをサポートしないデバイス(初期のIBM3270、富士通6680のようなTSS端末やラインプリンタなど)が標準環境にも多く存在したためです。

現在ではそういうことは余り考える必要はないので、PCやunixであればタブを使い(ホストはコード系が違ったり、一行72文字の制限などがあるため。ちょっと話が変わる)、どうしてもサポートしない環境に持って行くときにexpandを使って変換すれば十分だと思いますね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

どちらかで統一すればよいということですね

お礼日時:2008/02/10 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!