且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

为什么 clojure 将名称中的破折号转换为文件系统中的下划线?

更新时间:2021-12-04 05:47:13

这是 Java 互操作性的必要解决方法.

It's a necessary workaround for Java interoperability.

当 Clojure 命名空间被 AOT(提前)编译成 Java .class 文件时,它的名称必须是有效的 Java 标识符.破折号在 Java 类名中无效,因此 Clojure 将它们转换为下划线.它还可以将 * 之类的字符转换为 _STAR_ 之类的词.

When a Clojure namespace is AOT (ahead-of-time) compiled into a Java .class file, it has to have a name that is a valid Java identifier. Dashes aren't valid in Java class names, so Clojure converts them to underscores. It also converts characters like * into words like _STAR_.