短いプログラムを書いていると、変数名を決めるのが面倒です。予約語と被らないようにするのも面倒です。でもたまにローマ字の変数名を見ると、イラッとします。
(関係ないですけどPHPの$って優れものですよね。よく記述し忘れますけど。)
言語も、使う場面も何でもいいです。
オススメできる変数名と、使い道と、少し捻ってあるものは由来も教えて下さい。
出来れば三つ以上お願いしますね。
今時流行らないハンガリアン表記法なのですが…自分がよく使いがちなのは以下の感じです。
nIdx : ループによく使うあれです。二重ループは、なにも思いつかないと nIdx2 なんてしがちですが、あまり良くない習慣なのでしょうね。
sText : なにか、適当な文字列を入れる時に名前が思い浮かばないとつけるやつです。1つの単語だけと分かっているときは sToken とかしたりします。
sLine : ファイルなどから1行読み込んだ時に入れる変数です。
sResult : ハンガリアンなので接頭詞はいろいろ変わりますが、関数(メソッド)の戻り値になる予定の値のワーク変数です。
Value : JavaとかでいわゆるSetterメソッドなどで、値を一個だけ受け取るメソッド(関数)の引数なんかに使います。
個人的によく使っているルールを。
スコープが小さいときは混乱する危険性が比較的小さいので、短い変数名を使います。
foreach($records as $r){ print $r; }
$user_agent = new UserAgent(); $object = new Object();
往々にして予約語と衝突するので、適当な文字数で区切ります。
function func() // "func"tion 変数じゃないですが { $ret = 'return value'; // "ret"urn value return $ret; } for($index=0; $index<MAX; ++$index){...} $counter = 0; while(($counter++)<MAX)){...} $separate_character = '/'; $tokens = split($separate_character, $text); //配列の場合は複数形
なんか漠然とした例になってしまいました。すみません。
そういえば、コードコンプリートという本に変数名の決め方についての記述があります。
自分はまだ読んでないんですが、参考になるかも知れません(少し高いですが)。
http://radiofly.to/nishi/programming/c-naming.html
Code Complete第2版〈上〉―完全なプログラミングを目指して
変数名は割と語感で覚えているので、user_agent と UserAgent が同一ソース内に出てくると、当方の脳内メモリがオーバーフローしてしまいます…
func() はアリですね。
ただ、retは、別の意味に聞こえてしまうので、resを使ってます。
お薦めの書籍は、何か、通貨単位が間違ってんじゃないかと思うような値が付いてますが…
よくない例なのかも分からないけど、
ローカル変数で使い捨てする場合に
w ->ワーク変数
c ->char
s ->string
o ->object
-------------
長いオブジェクト名を省略して書くときに、クラス名の頭文字だけ。
これも局所的に使う場合だけ
u = new UserAgent();
-------------
母音を無視して3文字程度にするとか
vct = new Vector();
obj = new Object();
多重ループは何も考えずにi,j,k、文字列はstrにしてますね…。確実に慣習に毒されてます。
token、拝借していきます。charよりは打ちやすくて良いです。
ファイルの読み込みは、ループ中でtempに入れてる、かな?
あー、ありますあります。resultに演算の結果とか、戻り値を格納するのは。resultって打ってて気持ちいいんですよね。
valueだとかdataだとかhogeだとか、これといって意味のない変数を使っていると段々頭が悪くなっていくようでとても楽しいです。