- PR -

変数名について

投稿者投稿内容
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2005-11-03 11:20
ダッチと申します。

ローカル変数名の付け方についてお聞きしたいのですが、
Microsoftなどではローカル変数名の頭は小文字を使用するというのを拝見したのですが、
よく掲示板などで見かけるローカル変数名には下記のようなものがあります。

Dim aHoge as Integer

この頭についている小文字は何の意味を持つのでしょうか?
私もこのような変数の使い方をしたいのですが、
頭の小文字に何を使用すればいいのかが分かりません。

ご存知の方はご教授お願いいたします。
宣伝中止!
大ベテラン
会議室デビュー日: 2005/08/30
投稿数: 155
お住まい・勤務地: 東京に作業場所変更・・・
投稿日時: 2005-11-03 11:36
こんにちは。

仕事での話なら、その仕事でコーディング規約があって、それに併せて変数名をつけるということもあると思います。

ちなみに、小文字を使用しているのは、変数名だけ見て他の変数の型を推測しやすいようにといのもあるとおもいます。

たとえばInteger型なら頭に小文字iをつけるとか、Variant型ならvをつけるとか、
Stringならstをつけるとかですかね。

Dim iErrorCount as Integer //エラー件数用変数
Dim stErrorMessage as String //エラーメッセージ出力用変数(VBにStringって無かった?)
Dim vSystemMessage as Variant //システムに出力するメッセージ変数

上記はあくまでも一例ですし、変数に小文字をつけないところもあります。
いろいろなソースを見て推測をしてみるのも面白いかもしれませんね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-03 11:37
引用:

ダッチさんの書き込み (2005-11-03 11:20) より:

ローカル変数名の付け方についてお聞きしたいのですが、
Microsoftなどではローカル変数名の頭は小文字を使用するというのを拝見したのですが、


いわゆる、Camel 形式 ですね。

引用:

よく掲示板などで見かけるローカル変数名には下記のようなものがあります。

Dim aHoge as Integer

この頭についている小文字は何の意味を持つのでしょうか?


いわゆる、プリフィクスですね。
私も未だにローカル変数で 1 文字プリフィクスは使ってしまいます。orz
VB6 以前の場合は 3 文字のプリフィクスなんかを良く目にしました。

Dim intHoge As Integer ' ←ハンガリー記法 (推奨されない)

どちらにしても、これは良くないと言われています。
変数の型が変われば、当然名前も変えなくてはなりません。(すべて)

ローカル スコープで、それほどの変数は扱うはずもないので、
型の表現など不要だというのが、最近の皆さんの意見のようです。
引用:

私もこのような変数の使い方をしたいのですが、
頭の小文字に何を使用すればいいのかが分かりません。


たとえば、s のプリフィクスを short にするか String にするか人それぞれです。
b を byte にするか、bool にするかなどなど。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2005-11-03 12:08
宣伝中止!さん、じゃんぬねっとさん、回答ありがとうございます。

頭の小文字はハンガリー記法だったのですね。
ハンガリー記法は頭に3文字のものだと思っておりました。
勉強になりました。

Camel 形式ですと型が変更されたときに
変数名を変える必要はありませんね。

私には変数名の頭を小文字にする(プリフィックスではなくその次の意味のある単語)のはどうも抵抗がありまして、頭一文字を小文字にしてその後に頭大文字の単語が続く書き方を拝見して見やすいと思いました。
変数名は時代とともに変わっていくものかも知れません。
他の方のソースなどを拝見し、
自分でもいろいろと試しながら自分にあった変数名の付け方を見つけようと思います。

皆さんありがとうございました。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-11-03 15:00
こんにちは。

aHoge の a は「auto 変数(自動変数)」の事だと思います。
この命名規則は、メンバには「m」、静的変数には「s」、グローバル変数には「g」だとか、「その変数のスコープ」に注目して付けているようです。

Camel 形式とハンガリアン記法は別ではありません。ハンガリアン記法は Camel 形式のときもあります。
先頭が小文字ならば Camel 形式。
先頭が大文字ならば Pascal 形式。
ハンガリアン記法は先頭に型を表す文字を付ける。このとき先頭が小文字ならば Camel にもなります。

ちなみに私はプレフィックスを付けるのはあんまり好きじゃあないです。
(心の中で)発音がし難いですからね。だから短縮するのもあんまり好きじゃあないですね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-03 23:29
引用:

囚人さんの書き込み (2005-11-03 15:00) より:

aHoge の a は「auto 変数(自動変数)」の事だと思います。


array な変数に使っている人もいるみたいです。

引用:

ちなみに私はプレフィックスを付けるのはあんまり好きじゃあないです。


その昔、私の Blog で、プリフィクスを使うかどうか意見を求めたところ、
今では、コントロールのみに使用する方が多いということが判りました。

引用:

だから短縮するのもあんまり好きじゃあないですね。


基本的に短縮は厳禁ですね。
長くなりすぎてはダメですが、少しくらい長くなっても判りやすい名前をつけるべきです。

短縮は略語の頭文字でなら OK みたいですね。
例 : System.InputOutput -> System.IO

---

よく見かけるのが、クラス名の先頭を小文字にした変数。
例 : Hoge hoge = new Hoge();

これは良くないみたいですね。
まあ、VB だとさらに精神衛生上、良くないわけですが...w

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Lichtenstein
ベテラン
会議室デビュー日: 2003/11/06
投稿数: 61
投稿日時: 2005-11-04 12:49
C++やVBでは、配列に使うことが多いですよ >aHogeHoge

配列であることを見逃すと被害が大きいんです。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-11-04 12:56
引用:

array な変数に使っている人もいるみたいです。


引用:

C++やVBでは、配列に使うことが多いですよ >aHogeHoge


なるほど、そうなんですか。
配列とかコレクションとかは「〜s」とか複数形にしたりしますね。配列である事を見逃す機会は今まであまりなかったなぁ。でも確かにあるかも。

引用:

よく見かけるのが、クラス名の先頭を小文字にした変数。
例 : Hoge hoge = new Hoge();


これ、スコープが小さい時はめちゃくちゃよく使います。

そういや、接頭語嫌いな私でもポインタは例外なく「p」を頭につけてます。

[ メッセージ編集済み 編集者: 囚人 編集日時 2005-11-04 12:59 ]

スキルアップ/キャリアアップ(JOB@IT)