评论者:mfikes
考虑另一种选择:模仿 ClojureScript 中的现有设施,它具有 * }}
`
cljs.user=> (doc main-cli-fn)
cljs.core/main-cli-fn
当编译为命令行目标时,将使用命令行
main-cli-fn 设置的任何函数作为参数调用
argv
`
作为一个用例,使用 {{foo.cljs}}
`
(defn greet [name]
(println (str "Hello " name "!")))
(set! main-cli-fn greet)
`
然后
$ planck foo.cljs Friend Hello Friend!
当一个地方比 {{-m}} 或甚至一个 {{-f}} 方法更有优势时,是在你创建一个shebang脚本并希望传递命令行参数的情况下,你会喜欢以简单的方式启动该脚本:
`
!/usr/bin/env clojure
`
然后让 }机制确保 }路由到该函数,无需在shebang行中放入{{-f some-qualified/function}},因为在Linux中无法在shebang行中指定解释器参数。