人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

変数名募集。
短いプログラムを書いていると、変数名を決めるのが面倒です。予約語と被らないようにするのも面倒です。でもたまにローマ字の変数名を見ると、イラッとします。
(関係ないですけどPHPの$って優れものですよね。よく記述し忘れますけど。)

言語も、使う場面も何でもいいです。
オススメできる変数名と、使い道と、少し捻ってあるものは由来も教えて下さい。
出来れば三つ以上お願いしますね。

●質問者: ingot07
●カテゴリ:コンピュータ
✍キーワード:PHP オススメ プログラム ローマ字 予約語
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● matsu-boolean
●35ポイント

今時流行らないハンガリアン表記法なのですが…自分がよく使いがちなのは以下の感じです。

nIdx : ループによく使うあれです。二重ループは、なにも思いつかないと nIdx2 なんてしがちですが、あまり良くない習慣なのでしょうね。

sText : なにか、適当な文字列を入れる時に名前が思い浮かばないとつけるやつです。1つの単語だけと分かっているときは sToken とかしたりします。

sLine : ファイルなどから1行読み込んだ時に入れる変数です。

sResult : ハンガリアンなので接頭詞はいろいろ変わりますが、関数(メソッド)の戻り値になる予定の値のワーク変数です。

Value : JavaとかでいわゆるSetterメソッドなどで、値を一個だけ受け取るメソッド(関数)の引数なんかに使います。

◎質問者からの返答

多重ループは何も考えずにi,j,k、文字列はstrにしてますね…。確実に慣習に毒されてます。


token、拝借していきます。charよりは打ちやすくて良いです。

ファイルの読み込みは、ループ中でtempに入れてる、かな?

あー、ありますあります。resultに演算の結果とか、戻り値を格納するのは。resultって打ってて気持ちいいんですよね。

valueだとかdataだとかhogeだとか、これといって意味のない変数を使っていると段々頭が悪くなっていくようでとても楽しいです。


2 ● makiton
●35ポイント

個人的によく使っているルールを。

スコープが小さいときは混乱する危険性が比較的小さいので、短い変数名を使います。

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版〈上〉―完全なプログラミングを目指して

Code Complete第2版〈上〉―完全なプログラミングを目指して

  • 作者: スティーブ マコネル
  • 出版社/メーカー: 日経BPソフトプレス
  • メディア: 単行本

◎質問者からの返答

変数名は割と語感で覚えているので、user_agent と UserAgent が同一ソース内に出てくると、当方の脳内メモリがオーバーフローしてしまいます…


func() はアリですね。

ただ、retは、別の意味に聞こえてしまうので、resを使ってます。


お薦めの書籍は、何か、通貨単位が間違ってんじゃないかと思うような値が付いてますが…


3 ● KUROX
●10ポイント

よくない例なのかも分からないけど、

ローカル変数で使い捨てする場合に

w ->ワーク変数

c ->char

s ->string

o ->object

-------------

長いオブジェクト名を省略して書くときに、クラス名の頭文字だけ。

これも局所的に使う場合だけ

u = new UserAgent();

-------------

母音を無視して3文字程度にするとか

vct = new Vector();

obj = new Object();

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ