• ベストアンサー

ソースコード内のインデント方法について

ソースコード内のインデント方法は、タブを使う方法とスペースを使う方法があると思いますが、どちらが推奨されていますでしょうか? 私が思うには、タブとスペースが混用されてしまうのが問題であってどちらか一つに使うものを統一さえすれば、あまり問題ではないと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.3

現在の一般的な開発環境では、両方を使い分けることが良いと思います。 スペースのみではどの環境でもインデントが保障されますが手間がかかりますし、タブのみではインデントが使用するエディタによって狂ってしまうからです。 具体的には、各縦列を揃える時にタブを使用し、同じ縦列の中で位置を調整する時はスペースを使用します。 例えば、 if(・・・) {  if(・・・ &&    ・・・)  {  } } と書く場合は、 →if(・・・ && →___・・・) 『→』の部分にタブを使用し、『_』の部分はスペースを使用します。 こうすれば、どの環境でもインデントが整います。

参考URL:
http://ameblo.jp/argv/entry-10000625613.html
upanepa
質問者

お礼

ご回答ありがとうございます。 これは妥当な現実解ですね。 感心しました。この方法を試用してみます。

その他の回答 (2)

回答No.2

Pythonなんかの「インデントが構文を構成している」ような言語ではタブ/スペースどちらでも効果は変わらなかったと思います。 ただし、推奨は「スペース」だったんじゃなかったかな?確かそうだった、と記憶しています。 ただ、自動インデント機能付きのエディタで書く事が多いんで、あまり意識はしませんね。 例えばEmacsでしたら[ctrl]+[j]で勝手にインデントしてくれるんで、どっち使ってるんでしょう(笑)? いずれにせよ「自動インデント機能」は色々な意味でテキストエディタの「必須機能」になっていると思いますよ。

upanepa
質問者

お礼

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

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.1

COBOLの時代には、スペースを使うことが要請(推奨ではない)されていました。 これは、タブをサポートしないデバイス(初期のIBM3270、富士通6680のようなTSS端末やラインプリンタなど)が標準環境にも多く存在したためです。 現在ではそういうことは余り考える必要はないので、PCやunixであればタブを使い(ホストはコード系が違ったり、一行72文字の制限などがあるため。ちょっと話が変わる)、どうしてもサポートしない環境に持って行くときにexpandを使って変換すれば十分だと思いますね。

参考URL:
k
upanepa
質問者

お礼

ご回答ありがとうございます。 どちらかで統一すればよいということですね

関連するQ&A