数えるモノの名前を仮に foo として「foo の個数」を、プログラミングの文脈ではなく素朴に英訳すると「number of foos」になるが、これを元に変数名にすると長いし何か落ち着かない。などと以前から思いつつ何となく流していた。ふと、少し調べてみた。
英語ネイティブの言語感覚で fooCount が比較的多くの人が合意しうる案のようだ。
##ざっと読んでの要点メモ
- number では foo に関する何の数字か分からない。count ならば個数のことであることが示唆される。(書籍「CODE COMPLETE」にこの曖昧さについて記述があるらしい。)
- number には名詞、count には動詞の感じがある。が、辞書的には両方ともどちらにも使えて(動詞)「数える動作」(名詞)「そうやって得た数」の意味がある。
- count には数え上げて総計を求める動作の感じを伴う。数え上げた結果の数ならこれが自然。
- この数え上げ動作の感じがあるので、定数の場合には不自然と見る向きもある。この場合の別案としては MAX_FOOS があり。
- length や size という手もある。ただし個数というよりは物理的な長さの印象が伴う。foo を収めている集合構造(配列、リストなど)についてならばあり。
- 場合によっては foos もありだが、foo の集合構造を保持する変数と間違われる可能性がある。個々の foo の中身に興味がない場合などに限定される。
- "number of foos" をベースとする流儀での命名例: numFoo, nFoo, nrFoo
- Quantity (qty) 派は命名に言及している英語記事を見つけられなかった。
##参考にしたページ
-Naming conventions for “number of foos” variables
-How to name a variable: numItems or itemsCount or itemCount?
-variable naming: count vs. number vs. numberOf vs n vs. length, ...
-「~の数」という変数名はどうつけますか?
2ちゃんねる プログラム板「クラス名・変数名に迷ったら書き込むスレ。」にも何回か話題が出ているが、ちょっと残念な感じなので省略。