私は数ヶ月前からclojureを使用してきましたが、私が実際に理解していないことの1つは、名前空間の名前のダッシュがファイルシステムのアンダースコアとして表されなければならない理由です。誰もがこれを私に説明することができますか?ファイル名にダッシュを使用することも可能ですか?なぜclojureは名前のダッシュをファイルシステムの下線に変換するのですか?
21
A
答えて
26
これはJavaの相互運用性に必要な回避策です。
ClojureネームスペースがJava .classファイルにコンパイルされたAOT(予定時間)の場合、有効なJava IDである名前を持つ必要があります。 Javaクラス名ではダッシュは有効ではないため、Clojureはそれらをアンダースコアに変換します。また、*
のような文字を_STAR_
のような単語に変換します。
3
ディスク上の.class
ファイルには、Clojureの機能に下線が付いていますか?これらのファイル名でダッシュをサポートしていないJVMとは関係があると私は確信しています。 (少なくとも、それがサポートされているという保証はありません)
これはクラスファイル名の制限に過ぎず、Clojureはこの問題を静かに処理します。あなた自身のコードでも、ファイル名にダッシュを含むファイルを扱うことができます。
申し訳ありませんが、私はこの資料の参考になっていません。
関連する問題
- 1. clojureがバッククォート内の名前に名前空間修飾子を追加するのはなぜですか?
- 2. HTTPパラメータ名の下線とダッシュの比較
- 3. なぜですか:他にはいない(else)clojure? Clojureので
- 4. ファイヤーベースのダッシュ(子の名前)
- 5. DisplayFormatのDataFormatStringが "/"(スラッシュ)を " - "(ダッシュ)に変更するのはなぜですか?
- 6. 名前空間のclojureキーワードをstringに変換する正しい方法は何ですか?
- 7. 変換は、Clojureの
- 8. なぜ迅速に下線が必要なのですか?
- 9. Clojureでvarの名前空間を取得するには?
- 10. Eclipse - プロジェクトフォルダの名前を変更する方法(ファイルシステム上)
- 11. ZooKeeperがZNodeの名前を変更するのはなぜですか?
- 12. なぜmysqlに名前を変更する列コマンドがないのですか?
- 13. clojureの#と%の名前は何ですか?
- 14. SystemTrayにWXGAシミュレータの下部境界線があるのはなぜですか?
- 15. は、誰かが誰かがClojureのにこれを変換できClojureの
- 16. eclipseのリファクタリングが、異なるフォルダでも変数の名前を変更するのはなぜですか?
- 17. 同じ名前の異なるファイルシステムを区別する
- 18. 基礎となるファイルシステムのタイプ/名前を決定する
- 19. 編集テキストに下線が引かれているのはなぜですか?
- 20. YAMLのリストでは、仕事の前に " - "とダッシュがないのはなぜですか?
- 21. Visual C++でメソッドの名前が変更されるのはなぜですか?
- 22. 変数名の前にクラス名を "::"と一緒に使用するのはなぜですか?
- 23. vimにダッシュを入れたテキスト行に下線を付ける
- 24. 他のclojure名前空間からの変数へのアクセス?
- 25. clojure:現在の名前空間に到達可能なすべての名前をリストする方法は?
- 26. Clojureのツールの名前空間は
- 27. Array.prototype.someの名前が.anyでないのはなぜですか?
- 28. HandlerThreadに名前が必要なのはなぜですか?
- 29. タイムスタンプを月の名前と年をデータフレームの列の名前に変換する
- 30. 名前のないパラメータはなぜ有用なのですか?
それはAOTではないのですか? – Chris
いいえ。Clojureのコンパイルは常に同じです。 AOTコンパイルでは、クラスファイルをディスクに書き込むだけです。 –