- PR -

変数名の_(アンダーバー)の意味

1
投稿者投稿内容
Tom
常連さん
会議室デビュー日: 2004/06/07
投稿数: 23
お住まい・勤務地: 東京都
投稿日時: 2004-06-10 11:07
ちょっと恥ずかしい質問ですが、よくWEBのサンプルソースやオープンソースを
見ていると変数名の前や後に_(アンダーバー)が入った変数名をよくみますが
これはどういう意味なのでしょうか?

ちょっとどこかのサイトでC言語で変数の種別を識別するための慣用的なものみたいなことを
見たような気がするのですが(Javaでいうthisとかsuperみたいなものかな?)
人によって使い方が違ったりするのでよく分かりません。

あと前や後などによっても意味が変わるのかも疑問です。

慣用的にこういう意味と知っている方、ご教授ください。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-06-10 11:21
インスタンス変数とメソッドローカルの変数を区別するのに使われますね。(_がついてるほうがインスタンス変数)
this.*** って書き忘れると前後をよく確認しないとどっちなのかがわからないので。
前と後ろに意味があるかどうかは存じません。
まこと
会議室デビュー日: 2003/11/06
投稿数: 14
投稿日時: 2004-06-10 11:38
C言語では、_ で始まる名前は標準または処理系のマクロや(外部リンケージを持つ)変数名・関数名のために予約されています。
Java では特にそのようなことはなかったと思いますが、詳しい方補足・訂正などありましたらお願いします。
swat
常連さん
会議室デビュー日: 2002/03/21
投稿数: 33
お住まい・勤務地: 埼玉県
投稿日時: 2004-06-10 13:15
swatです。

http://www.alles.or.jp/~torutk/oojava/codingStandard/writingrobustjavacode_pid86_c3.html#doc1_662

意味はインギさんがすでに書かれているとおりでしょう。出自はC++みたいですね。前後の意味については私もよく知りません。

_________________
****** swat ******
http://www.h7.dion.ne.jp/~s_wat/
http://d.hatena.ne.jp/swat/
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-06-10 13:38
引用:

Tomさんの書き込み (2004-06-10 11:07) より:
よくWEBのサンプルソースやオープンソースを
見ていると変数名の前や後に_(アンダーバー)が入った変数名をよくみますが
これはどういう意味なのでしょうか?


WEBのサンプルソースというのが、どの言語で出来ているのか?によっても違うと思いますが、
例えば、PHP(5以前)だと、public、privateの区別が付かないので、privateの変数、関数名の先頭に_を付けた名前が、よく見られます。
Tom
常連さん
会議室デビュー日: 2004/06/07
投稿数: 23
お住まい・勤務地: 東京都
投稿日時: 2004-06-11 09:40
皆さん、ご返答ありがとうございます。

ちなみにサンプルのソースはJavaです。
でアンダーバーの前後はそれぞれの好みなのかな?
たいていは前につけてるみたいですが
たしか@ITの記事でも後にアンダーバーを書いているのをみた覚えがあります。
(著者は結構名前が知れて方だったと思いますが何の記事だったのかわすれてしまいました・・・)

でふと思ったのですがアンダーバーをつける習慣がある人はBeanを作る時はどうしているのでしょう?
Eclipseなどの自動生成Toolを使うとGetやSetのメソッド名にアンダーバーがついて
なんとなくかっこ悪くなってしまうのですが・・・(コード規約によっては駄目な場合もあるし・・・)

でも確かにインスタンス変数を区別する際にはいい方法ですね。
のぶ
会議室デビュー日: 2003/01/09
投稿数: 11
お住まい・勤務地: とちぎ
投稿日時: 2004-06-12 01:26
私の会社もインスタンス変数には頭にアンダーバーをつける命名規則があります。EclipseやWSADでは「設定」→「Java」→「コード生成」の変数命名規則でフィールドの接頭部リスト(または接尾部リスト)にアンダーバーを設定しておくとsetter/getterの自動生成でアンダーバーを無視してくれます。
Tom
常連さん
会議室デビュー日: 2004/06/07
投稿数: 23
お住まい・勤務地: 東京都
投稿日時: 2004-06-14 12:03
のぶさま、ご返答ありがとうございます。

Eclipseなどでそういう使い方ができたのですね。
さっそくやってみようと思います。
1

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