你可能会想当然的认为每个 namespace 对应一个类,namespace 里面的每个函数对应类里面的方法,而实际上并不是这样的,根据 Clojure 官方文档,对应关系是这样的: 每个文件、函数、gen-class 都会生成一个.class文件 每个文件生成一个<filename>__init 的加载类 gen-class 生成固定名字的类,方便与 Java 交互 生成的 bytecode 会在本系列第二篇文章中详细介绍
require [taoensso.carmine :as car] [taoensso.carmine.message-queue :as carmine-mq]) (:gen-class
根据 Clojure 官方文档,对应关系是这样的: 函数生成一个类 每个文件(相当于一个命名空间)生成一个<filename>__init 的加载类 gen-class 生成固定名字的类,方便与 Java ;; (:gen-class) 指令能够生成与命名空间同名的类 (ns how-clojure-work.core (:gen-class)) (defn -main [& _] (println
(ns the-way-to-clojure.core (:require [clojure.java.io :as io]) (:gen-class)) (defn -main [& args
:implicit-hooks false ;; (提示:ahead-of-time (AOT) compiler 是一个实现时间提前编译的编译器) ;; gen-class