- ベストアンサー
JavaやJavaScriptの識別子として先頭文字に$を使用しても問
JavaやJavaScriptの識別子として先頭文字に$を使用しても問題ないのでしょうか?ある有名な書籍に$はバイトコードとして使用されるため推奨されないとのことでした。 PHPやParlの変数の前に$(スカラー)を置くのでこれに合わせると、私としてはかなり見やすくなるので統一したいと考えております。プログラミングに詳しい方、ご教授お願いいたします。また、識別子の先頭に$を使用したことによってバグが発生したという経験がございましたら詳しく教えていただけないでしょうか?よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Javaについては正しい。http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625http://download.oracle.com/javase/7/docs/api/java/lang/Character.html#isJavaIdentifierStart%28char%29http://download.oracle.com/javase/7/docs/api/java/lang/Character.html#isJavaIdentifierPart%28char%29コンパイルは通るhttp://ideone.com/hs4PE>The $ character should be used only in mechanically generated source code or, rarely, to access preexisting names on legacy systems.ECMAScriptについてもhttp://www.ecmascript.org/7.6でIdentifierStartに$が含まれるので使える。
その他の回答 (2)
- erichgumma
- ベストアンサー率48% (13/27)
Java:×(たとえコンパイルが通っても、Sunがそう決めてるので) http://www.oracle.com/technetwork/java/codeconventions-135099.html Variables Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed. Javascript:○
お礼
Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed.オラクルのホームページを実際に見て見ました。「変数はアンダーバー(_)もしくはドル($)で始めるべきではない」この事は事実として受け止めざるを得ないようです。しかし、これはあくまでも読みやすくするための慣習(Naming Conventions)ですので、もし使用しても問題が起こらないようなら、識別子として使ってみようかと思います。 この度は、ご回答ありがとうございました。この事を知れたことは大きな一歩です。
補足
フィールドの識別子を表現する場合、先頭文字に_を使用することを好む人もいます。オラクルのNaming Conventionsによると_も推奨されていないようですので、$も推奨はされていないが使用可能かもしれません。バグが発生するまで、使用してみます。
- himajin100000
- ベストアンサー率54% (1660/3060)
なんかうまく改行されなかったのでJavaについては正しい。http://java.sun.com/docs/books/jls/third_edition …コンパイルは通るhttp://ideone.com/hs4PE>The $ character should be used only in mechanically generated source code or, rarely, to access preexisting names on legacy systems.ECMAScriptについてもhttp://www.ecmascript.org/7.6でIdentifierStartに$が含まれるので使える。
お礼
改行がうまくいかなかったのですか?しばらく、識別子の先頭文字に$をつけて検証してみます。ご回答ありがとうございます
お礼
JavaScriptでは識別子の先頭文字に$が使用できるようで、大変満足です。 しかし、Javaではほかの回答者様のおかげで実際に推奨されていないことがわかりました。それでも、バグが起こらないようでしたら、使ってみようかと考えています。この度は、ご回答ありがとうございました。もし、バグを発見しましたら教えていただけるとありがたいです。