(変数) 名の大文字と小文字の区別による実行時のバグ
-
13-09-2019 - |
質問
最近問題が発生しました (ANTLR 「デバッガーを起動できません。リモート パーサーへの接続を待機中にタイムアウトしました。」) ここには、(変数) 名の大文字と小文字の区別が原因である可能性があり、OS に依存するランタイム バグがありました。これはANTLRでのことでしたが、より一般的に、名前が大文字と小文字だけが異なり、プログラムはコンパイルされますが、名前の衝突により実行時エラーが発生するという一般的なケースが(どの言語でも)あるかどうか疑問に思っています。UNIX と Windows の間にも違いがあるのでしょうか?
考えられる例として、同じパッケージ内に 2 つの Java クラスを作成できます。 Foo
で Foo.java
そしてfoo
で foo.java
UNIX では同じことができますが、Windows では同じことができませんか?そうでない場合、これはコンパイラーによってトラップされますか?大文字と小文字の等価性に対してどのような制限が課されますか?そして、他の共通言語はこの問題をどのように扱っているのでしょうか?
[もちろん、意図的にこれを試みているわけではありませんが、エラーが忍び込み、それらを検出するためにコンパイラーに大きく依存しています。]
解決
これはほとんどの人にとって大きな懸念ではないようです
所属していません StackOverflow