- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/04(日) 23:28:42 ]
- カッコの位置や変数名のつけ方から、何で規約なんて決めるのという話まで
コーディング規約・スタイルに関するスレ 前スレ コーディング規約 第2条 pc10.2ch.net/test/read.cgi/tech/1068752664/
- 159 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 13:35:57 ]
- Javaをアンダーバーで切ると標準ライブラリで見づらくなるじゃない?
- 160 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 14:57:56 ]
- クラス名の先頭は大文字にしとけ
- 161 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 02:03:18 ]
- クラス・関数・変数・定数・etcの区別に拘っている方に聞きたい。
関数ポインタとかファンクタ、デリゲート、const変数等はどう名付けてます?
- 162 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 02:52:04 ]
- 使用するライブラリに合わせるかなぁ。
>>161 デリゲートって悩むよねー MS様のガイドラインではイベントハンドラ以外のは 〜Callbackにしろって書いてあったと思うけど、 明らかに守られてないし。(MethodInvokerとか) あんまし関係ないけどWin32APIの定数はできるだけ constの変わりにenum使うようにしてる。
- 163 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:48:41 ]
- 変数 => 全部小文字/アンスコ
メソッド => 先頭小文字/キャメル クラス => 先頭大文字/キャメル 定数 => 全部大文字/アンスコ かな。
- 164 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:40:44 ]
- >>154
publicな名前はDoSomethingで、 privateな名前はdoSomethingと覚えておけばいい
- 165 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 23:26:27 ]
- privateメソッドはどう名前をつけようが窯湾だろ。
- 166 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 02:20:54 ]
- c++だとバッティングするリスクがあるのでちょっとは気にした方がいい。
- 167 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 21:43:21 ]
- そのバッティングするリスクとやらをどうぞ
- 168 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 02:25:30 ]
- ttp://www.mozilla-japan.org/hacking/portable-cpp.html
> C++ 標準規格 17.4.3.1.2 節 グローバル名 [lib.global.names] 第1パラグラフによると: > > 名前と関数シグネチャのある特定の組は、実装によって常に予約されています: > 二重のアンダースコア(__)が含まれる名前、または後ろに大文字 (2.11) が付くアンダースコアで始まる名前は、 > ある目的のために実装によって予約されています。 > アンダースコアで始まる名前は、グローバルな名前空間で使う名前として実装によって予約されています。
- 169 名前:デフォルトの名無しさん [2007/05/16(水) 08:11:48 ]
- doxygen で @param に付く in, out って、つけたほうがいいんでしょうか?
ほとんど [in] だし、ポインタに const ついてなければ [out] または [in,out] なんで、 あんまり手動でつけて回るメリットが無いような気がしてます。
- 170 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 08:27:30 ]
- >>169
私のところでは、過去との互換性でconstついてないポインタの時にはつけてる。
- 171 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 09:11:58 ]
- クラスというか、抽象的に状態を保持してるオブジェクトを
渡すときは in も out も何かしっくりこないしねぇ。出したり入れたり じゃなくて状態を変更するかどうかが重要って感じ?
- 172 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 12:50:24 ]
- 通常それをピストンというのでは?
- 173 名前:デフォルトの名無しさん mailto:age [2007/05/16(水) 14:45:20 ]
- ほしゆ
- 174 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 04:21:30 ]
- ケースセンシティブをなくせばこんな宗教戦争は解決するんじゃない?
- 175 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 10:20:53 ]
- >>174
自動車をなくせば交通事故は無くなるんじゃない?
- 176 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 10:25:26 ]
- >>175
いいえ、自動車以外の交通事故は残ります。 →ケース問題を除く宗教戦争は残ります。
- 177 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:07:30 ]
- BASICって確か大文字小文字区別しないけど、
あの言語ってケース問題に関する宗教戦争ってないのか?
- 178 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:33:11 ]
- 8bit時代のBASICならいざしらず、VisualBaiscとか今時のBASIC使ってるヤツで
「大文字小文字同一視だぜ」とか言ってるやつはみたことないな。 普通に大文字小文字区別して「どう書こう?」ってやってる。
- 179 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:51:21 ]
- Delphiが「大文字小文字同一視だぜ」なんだけど、
書籍やIT系サイトのチュートリアルっぽいコードで、たまに無茶苦茶なのを見かける。 一般向けに晒すコードなら、プロパティ名とかメソッド名はオンラインヘルプに記述されているとおりに書け。 # Delphiのヘルプは酷いから、そもそもオンラインヘルプで記述が統一されていないってのもあるが。
- 180 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:43:03 ]
- MSDN見習わせたらエラー処理はしないしファイル番号は固定だし……
ってのは兎も角。 >>178 VisualBasicは大文字小文字を区別できるんですか? 例えばdim aa as integer, AA as integer, Aa as integerみたいに? 私ゃ保存はされるけど区別はできないと思っていたのだが。
- 181 名前:178 mailto:sage [2007/05/21(月) 15:01:39 ]
- >>180
いや、区別しない。 >>178で言いたかったのは 「区別されないからAbcDefメソッドをABCDEFで呼ぶぜ」なんてやつはおらず、 VBでも「『AbcDef』がいいか『abcDef』がいいか(大文字小文字を意識して)どう書こう?」って やってる、ってこと。 書き方悪かったかも。ごめん。
- 182 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:38:32 ]
- でも自動車を無くせば自動車事故は起きなくなるね
#こういう考え方はいかん #エロサイトを封じれば性犯罪が減ると思ってやがる
- 183 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:08:06 ]
- >>182
コメントへの野暮なレスですまんが、 もとの「自動車を無くせば自動車事故は起きなくなる」に対応する のは「エロサイトをなくせばエロサイトへの接続が無くなる」では。 # 縦読みを仕込みたかったが出来なかった。
- 184 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:21:39 ]
- エロサイトを封じたら、性犯罪は増えるんじゃないの?
- 185 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:14:54 ]
- >>183
エロサイトを封じればエロサイトの広告、迷惑メールなどが減る。 →でもその他の広告などは残る。
- 186 名前:175 mailto:sage [2007/05/23(水) 01:40:16 ]
- 大文字小文字の区別をつけるか否かは、言語設計者が決めることだから、
その言語を使用する側が制御できることではないし、どうこう言うべきことでもない と言いたかったのですが。
- 187 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 05:03:55 ]
- 最近はCOMとか.NETとかスクリプティングとか言語設計者の都合だけでは
決められない要素も出てきた
- 188 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 06:51:31 ]
- COMは最近ではないと思うけど、まあそうだね。
- 189 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:52:32 ]
- 機械語
- 190 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 08:01:29 ]
- そういえばスペースだけでコーディングする言語あったよね
あれなら宗教戦争はなくなる
- 191 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 08:23:20 ]
- ホワイトスペルマだっけ?
- 192 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 00:19:25 ]
- しばらく開発から離れた仕事をしていたうちにハンガリアンはあまり使われなくなったみたいですが、どういった理由でですか?
カーソルをあわせれば型が出るからですか? 自分はカーソルあわせるのが面倒なのでハンガリアンで書いてますが・・・
- 193 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 00:25:52 ]
- >>192
templateをゴリゴリつかったプログラミングなんかが流行ったこととかが関係してると思う。 ハンガリアンだと型を変えたときに名前まで変えなきゃならんしね。 ↑これは型に対するハンガリアンのことであって、意味に対するハンガリアンは いまでもそこそこ使われてると思うけど。
- 194 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 00:41:42 ]
- 変数のスコープがやたらでかくなってないか、
関数でかすぎるせいでそうなってないか、 一回見直したほうが良い。
- 195 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 21:19:31 ]
- 悪しきシステムハンガリアンが消えて
本来のアプリケーションハンガリアンを用いる人が増えただけ
- 196 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 05:09:57 ]
- ハンガリーってどこらへん?
- 197 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 11:45:17 ]
- X系はdoSomething、GNU系はdo_something
ディストリをメンテしているオレの戦いは今日もつづく
- 198 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 16:30:30 ]
- >>196
www.namamono.com/okotoba01.html (02年3月上旬)
- 199 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 16:37:28 ]
- 無駄に探す労力を割かす上につまんねぇ…
なんという糞レス…
- 200 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:07:08 ]
- >>199
おーrrらー
- 201 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 01:08:52 ]
- 今までこう書いてたけど
変数 => 全部小文字/アンスコ メソッド => 先頭大文字/キャメル クラス => 先頭大文字/キャメル 定数 => 全部大文字/アンスコ >>163さんと同じにした方がみやすいんじゃん っておもた でも先頭が小文字のキャメルは不自然に感じてしまう
- 202 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 01:33:07 ]
- C#だけど結局
プライベートフィールド・ローカル変数 :ローワーキャメル 名前空間・クラス・関数・プロパティ・定数 :アッパーキャメル に落ち着いた。 フィールドにアクセスするときは必ずthis付けるようにしてるから ローカル変数と混同することはないはず。 今MSDNのガイドライン読んだらプライベートメンバの 名前付けに関してはなんでもいいみたいだな。
- 203 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 23:17:56 ]
- >>202
構造体・クラス・列挙体にはリーディングタグつけないやっぱり? C#だとやってる人ほとんどいないなどういうわけか。 enumはともかく、クラスと構造体の違いは勘違いしてると致命的になる場合が あるから、つけた方がぜったいコード読みやすいと俺は思うんだけど。
- 204 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 00:11:27 ]
- MS的にNGな気がする。
- 205 名前:デフォルトの名無しさん [2007/06/29(金) 01:18:09 ]
- >>163氏の命名法で
変換テーブル的に使う変数(例えば数値→文字へに使うようなmap型の変数)や 関数オブジェクトのインスタンスなら関数と同じような命名法である >先頭小文字/キャメル を適用したいのです こういう類の変数で初期化時に設定してあとは殆ど変更しなかったり、 初期化部分以外での扱い方が関数的(mapの例だとmap[x]でxに対応する値の取得に使われる)たりで メソッドとみなしてメソッドに対する命名法を適用しても問題ない気がするんですがどうでしょう? それでも変数である以上変数に対するルールを出来る限り使用するべきでしょうか?
- 206 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 10:02:57 ]
- >>203
C# は結局、VS のインテリセンスに頼ること前提だから、 クラスと構造体の勘違いは気にしなくてもいいのかも。
- 207 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:44:20 ]
- P/Invoke以外で構造体作ったこと無いなー。
- 208 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 18:08:36 ]
- >201
Javaだと先頭小文字のキャメルってよく使うよ。 何せ標準ライブラリがそうなってるからな。 M$は先頭大文字キャメルLoveみたいだが。
- 209 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:11:36 ]
- .NETは、
名前空間名、型名、パブリックメンバ名はPascalCase、 関数の引数名はcamelCase
- 210 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 02:29:48 ]
- 正直Camelで区別するのって、ハンガリアンと同じモノを感じるのは漏れだけですか。
- 211 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 03:07:50 ]
- ハンガリアンはハンガリアンでもアプリケーションハンガリアンは全然おkだよ
getXXXとかのgetのようなものも役目としてはこれに近いから同じように感じるのも無理はない
- 212 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 16:52:56 ]
- C#でLogというクラスを作ったわけですよ。で、ログの種別を
区別するための列挙型をLog.Typeと命名したんですね。 .NETのライブラリでもアッパーキャメル規約になってるっぽいですから。 で、メンバ変数としてType Log.typeを定義したのです。ここまでは 分かりますね。さらにLog.typeを外部から直にアクセスして欲しくないので typeにアクセスするプロパティを定義すると。MS式の記法だと、やっぱり Log.Typeが妥当かな? 型 'Log' は 'Type' の定義を既に含んでいます。
- 213 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 01:04:30 ]
- >>212
キャメル云々はそれでよいと思う。 名前が重複する件は、列挙型はTypeでよくて、プロパティの方は「○○のためのType」という ○○の部分をうまく補ってあげればいいんじゃないかな。
- 214 名前:212 mailto:sage [2007/08/17(金) 03:18:25 ]
- 「○○のためのType」がこの場合、本当に「ログのためのType」としか
表現のしようがないのが辛いです。 列挙型はLog.Typeで、プロパティはLog.LogType…うーむ。 余談ですが、列挙型の識別子を“TYPE”と全部大文字表記 (長い場合はアンダースコア区切り)にすることも考えました。 しかしその方法でも内部クラスとかの命名になるとお手上げ…。
- 215 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 00:09:00 ]
- TypeIdとかTypeNoとか。
- 216 名前:デフォルトの名無しさん [2007/08/24(金) 04:14:41 ]
- C++だけど、こんな感じで関数名と変数名がバッティングするときどうします?
class Ore { public: bool isNeet() const { return isNeet; } // if (ore.isNeet()) { ... } とか呼びたい private: bool isNeet; }; 1. こういうの嫌だから関数を大文字で始めてるYO(isNeet()をIsNeet()に) 2. こういうの嫌だから変数にプリフィックスなどをつけてるYO(isNeetをm_isNeetやisNeet_に) 3. 変数名を変えちゃうYO(isNeetをneetとか……形容詞ならともかく名詞だと変な気が。 なんかもっといいネーミングとかありますかね) なんかJavaだと↓で普通に通っちゃうんだけど。理屈はわかりませんが。 class Ore { public boolean isNeet() { return isNeet; } private boolean isNeet; } 関数名が小文字で始まるほうがコードが柔和な気がするのでC++でもそうしたいんですが、 (メイヤーズ先生も小文字で始めてるし) どうもここがちょっと引っかかって。
- 217 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 04:29:23 ]
- >>216
isNeet = false とかがキモイのもあって、 neetFlag とかにしちゃうかな。 m_neet もアリだな。
- 218 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 10:53:28 ]
- >>216
メソッド名を大事にしたいならフィールド名にちょっと引込んでもらうしかないのでは。 自分ならサフィックスにアンダーバーつける。 >>217 「isNeetを内部で保持するのはneetFlag」みたいなのって、頭使うの面倒じゃない? まれにはそういう置きかえがピッタリいくこともあるけど、ほとんどの場合は 機械的に「プレフィックスつけてるっすー」とかの方が、余計なことに気を回す必要がなくて楽だと思う。
- 219 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 00:44:34 ]
- _*
m_* がいいよ。 メンバ変数を他の変数と区別できるようにするのは、 CodeCompleteでも薦められてるようなよくやるパターンです
- 220 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:21:18 ]
- メンバ変数はname_にしてる。
- 221 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:27:52 ]
- >219
_FollowedByUppercaseLetterはコンパイラ&ライブラリ実装者用の予約語なので、 _nameも避けといた方が無難。 #double__underscoreもね
- 222 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:32:37 ]
- 前にアンダーバー置くのはイクナイね。
- 223 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 01:35:48 ]
- 某所で、初心者にえらそうに教えてるやつが、Cなのに構造体のメンバにm_をつけてた。
意味をわかってつけてるのか。
- 224 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 03:11:13 ]
- >>219
_name をつけるほど自信家じゃない grepしたときやたらと似たようなのが引っかかりそうだし それにエディタの行位置表示を下線にしてあるから、見えなくなる
- 225 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 03:16:23 ]
- >それにエディタの行位置表示を下線にしてあるから、見えなくなる
これが理由なら、阿呆だ。
- 226 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 06:17:51 ]
- >>223
member の m なら C の構造体でも間違いではないだろ。
- 227 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 09:51:01 ]
- >>221
たぶんそれ、グローバルな名前がそうなだけ
- 228 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 09:53:05 ]
- 予約識別子だから、マクロ名を含めて、ソースコード中に出現してはならんよ。
- 229 名前:227 mailto:sage [2007/08/25(土) 11:29:28 ]
- すまん>>221は、_の後に大文字が来るのが最もマズいって言ってんのか
- 230 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 13:13:08 ]
- 外からしか扱わないメンバに m_ とかつける必要は無いだろ。
struct Point { int m_x; int m_y }; Point p0 = { 0, 0 }; Point p1; p1.m_x = p0.m_x + 1; とか無意味。 scope の間違えようがない。
- 231 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 22:37:30 ]
- class Hoge {
private: struct { int x; int y; } m; }
- 232 名前:227 mailto:sage [2007/08/26(日) 00:16:02 ]
- >>231
やめなさいw
- 233 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 01:06:27 ]
- >>231
とてもアリな気が今した!
- 234 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 20:47:53 ]
- >231
コレ継承先から継承元の変数見るのが面倒では… あー、もしや変数は全部privateにしろって事?
- 235 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 21:13:48 ]
- >>234
>あー、もしや変数は全部privateにしろって事? 当たり前じゃん。
- 236 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:31:17 ]
- >>234
structなしでint m_x;とか書いたのに比べて、なにか不便になることってあるの?
- 237 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 00:41:08 ]
- 2〜3行増える。
素直にint x_, y_;にしとけばタイプ量も減る。
- 238 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 01:24:03 ]
- 231のmをポインタにした感じのコードなら書いたことある。
例外にも強いしコピー・交換も楽で速いしなんて思っていたら、 どうみても劣化pimplです、本当にありがとうございましたというオチ。
- 239 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:34:42 ]
- >>237
タイプ量だけ? >>234 の継承とかなんとかは関係ないの?
- 240 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 22:41:02 ]
- >>237
メンバ数が多いと、逆にタイプ数は減らないか?w
- 241 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:15:46 ]
- アフォな質問ですまん。
>231の例でx,yの初期化ってどうやって書けば良い?
- 242 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:38:14 ]
- >>241
普通にコンストラクタの初期化部で書けばよろしいかと。
- 243 名前:241 mailto:sage [2007/09/05(水) 00:12:31 ]
- >242
サンプルコードを書いて貰えませんか? 少なくとも漏れの知ってる書き方をみる限りでは、 >231の方法はやっぱダメだとしか思えませぬ。
- 244 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 00:47:14 ]
- structが無名だから初期化できないね。ま、コンストラクタで代入するってことで。
-- class Hoge { struct { int x; int y; } m; public: Hoge() {m.x = 0; m.y = 0;} Hoge(int x, int y) {m.x = x; m.y = y;} };
- 245 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:18:43 ]
- x,yがconstか参照で、かつコンストラクタの引数経由で
外部から初期値渡したい場合は? それ考えると>231はやっぱ使い物にならん。
- 246 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:54:42 ]
- struct に名前を付けてコンストラクタ書けばいいだけの話じゃないの?
- 247 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 01:14:03 ]
- 最早>231はどうでもいいがw
>x,yがconstか参照で、かつコンストラクタの引数経由で >外部から初期値渡したい場合は? 条件後出ししていいなら、構造体に名前つけさせてくれ。
- 248 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 20:24:05 ]
- >246,247
structに名前付けるのはいいけど、 通常1回書けばすむはずの処理を、2回書かなきゃダメだよね? そうじゃないスマートな書き方を知っているなら是非ご教授を。
- 249 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 13:03:53 ]
- >>248
2回って、何で? Hoge は InnerHoge に丸投げするだけでしょ。
- 250 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 00:21:38 ]
- >>249
Hogeのコンストラクタとその内部構造体のコンストラクタで 2回初期化を書かなければいけない(そしてそれがスマートでない) と248は言っているのだろう。
- 251 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 16:57:12 ]
- あーの、Windowsでアンダースコア区切りの命名規則を採用している方に質問なのですが、
皆さんはWinMainの引数とかAPIのコールバック関数にもアンダースコア区切りで命名しますか? それともWinAPIに関連する変数は例外的にハンガリアン+CamelCaseで命名しますか? 当方、先週Windows畑に飛ばされたばかりのへっぽこPGなんですが、 どうにも気になって気になって。。。
- 252 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 02:06:24 ]
- Gtk+なんかだとAPIそのもの以外は徹底的にアンダースコア区切りで命名してるな
- 253 名前:1/2 [2007/10/05(金) 00:49:37 ]
- なんか、コーディング規約で this を返すのは駄目っていうのをどっかで読んだんだけど
こういうのはどうなの? (サンプルソースの意図は、oldTest() の if 文を無くして test() のようにシンプルにすること) public class Test { private static void oldTest(String[] params){ for (int i = 0; i < params.length; i ++) { if (0 < i) { System.out.print("," + params[i]); } else { System.out.print(params[i]); } } } private static void test(String[] params){ Printer printer = FirstPrinter.instance; for (String param : params) { printer.print(param); printer = printer.nextPrinter(); } } public static void main(String[] argv){ test(argv); } }
- 254 名前:2/2 [2007/10/05(金) 00:50:41 ]
- abstract class Printer {
abstract void print(String param); abstract Printer nextPrinter(); } class FirstPrinter extends Printer { static final FirstPrinter instance = new FirstPrinter(); void print(String param){ System.out.print(param); } Printer nextPrinter(){ return SecondPrinter.instance; } } class SecondPrinter extends Printer { static final SecondPrinter instance = new SecondPrinter(); void print(String param){ System.out.print("," + param); } Printer nextPrinter(){ return this; } }
- 255 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 00:58:07 ]
- >>253
コード読んでないけど、駄目って言う理由がないんならどうでもいいんじゃね?
- 256 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 01:31:13 ]
- メソッドチェーンするのに便利だしthisを返しておいた方がいいと思ったんだけど、
駄目って言う理由はなんなんだろう。
- 257 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 01:58:23 ]
- >>256
ちょっとよくわからないで言うけど this を返してもらった奴がこれを使うときにthisの実体がなくなっちゃてたりするケースってない?
- 258 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 03:18:25 ]
- >>257
だって呼び出している側がインスタンス保持しているのに、 なくなっているってことが通常ある?
- 259 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 03:53:45 ]
- >>257
コード見る限り Java だから、それはありえない。
|

|