ローカル変数と区別するために、変数の名前付けに接頭辞アンダースコアを使用しました。変数名のための_iVarとiVar_
私は「のGoogleのObjective-Cスタイルガイド」を見て起こった、そしてなぜについての詳細な説明なしに、(HEREそれを参照してください)、それは末尾のアンダースコアを使用することを示唆していることがわかりました。
私はそれがコーディングスタイルの問題であることは知っていますが、後ろのアンダースコアを使う利点はありますか?
ローカル変数と区別するために、変数の名前付けに接頭辞アンダースコアを使用しました。変数名のための_iVarとiVar_
私は「のGoogleのObjective-Cスタイルガイド」を見て起こった、そしてなぜについての詳細な説明なしに、(HEREそれを参照してください)、それは末尾のアンダースコアを使用することを示唆していることがわかりました。
私はそれがコーディングスタイルの問題であることは知っていますが、後ろのアンダースコアを使う利点はありますか?
関連:Question about @synthesize(答えの下部にblockquotesを参照)
利点がある:_varは、民間の規則(C99、ココアのガイドライン)であるが、それはAppleのこと(でもアップルテンプレート上)ので、一般的ですダブルアンダースコア__varを使用します。 Googleでは代わりに末尾のアンダースコアを使用して解決します。
私は性質 (大手を追加してみてくださいがモデルにアンダースコア先頭にアンダースコアもC++( What are the rules about using an underscore in a C++ identifier?を参照)、コアデータに落胆しているカップルより多くの理由...
と他の答えを更新し、 「 の名前は文字で始める必要があります」と表示されます)。
末尾のアンダースコアは賢明な選択ですが、 が何か他の場合は衝突が起こりそうにない場合は、 コンパイラから警告が表示されます。
接頭辞アンダースコアは通常、システム/ SDKライブラリで使用されます。接頭辞のアンダースコアを使用すると、スーパークラスの変数がオーバーライドされ、このようなバグが見つからないことがあります。 NSViewのような、システムが提供するクラスを見てください。
ええ、それについて聞いたことがありますが、XCode4がインスタンス変数の前にアンダースコアを含むようにアプリケーションテンプレートを更新することに気付きました。 – Kjuly
ほとんどすべてのプログラミング言語は、英語をベースにしており、左から右への書き込みと読み込みが行われています。
先頭のアンダースコアを使用すると、iVarsを見つけやすくなり、変数がiVarであることを認識することができます。
うん、 '_iVar'はイーバールを見つける方が便利です。しかし、あなたが見るように、_Google Objective-Cスタイルガイドは「iVar_」を提案しています。 – Kjuly
Googleドキュメントでは、なぜそれらが末尾のアンダースコアを使用することを示唆しているのか説明していません。さらに、私は、地域変数の命名において、ハンガリー語表記法を放棄することの提案に同意しない。 –
アップルはivarsに1つの先頭のアンダースコアを使用しているため、変数名が私たちと衝突しません。あなたのイヤーズの名前をつけるときは、以外にはの先頭に1つのアンダースコアを付けてください。
Googleはこの競合を解決するために単一の先頭のアンダースコアの代わりに末尾のアンダースコアを使用していますか? – Kjuly
ああ... SOには適していませんか?コメントを残してください。 :( – Kjuly
「正解」の方が主観的な話題のほうが – jrturton
ありがとう@jrturton、しかし、私は「iVar_」に関するいくつかの理由を説明するには良い答えが必要なので、これを私の同僚に見せて議論することができます彼と一緒に:p – Kjuly