评论由:mfikes 发布
可以考虑的一个替代方案:模仿 ClojureScript 中现有的设施,ClojureScript 中有一个 * }
`
cljs.user=> (doc main-cli-fn)
cljs.core/main-cli-fn
当编译成命令行目标时,将使用命令行
main-cli-fn 设置的任何函数将作为 argv 参数调用
argv 作为参数
`
作为示例使用,使用 {{foo.cljs}}
`
(defn greet [name]
(println (str "Hello " name "!")))
(set! main-cli-fn greet)
`
然后
$ planck foo.cljs Friend Hello Friend!
在这种方式下,相较于{{-m}}或{{-f}}方法,有一种情况特别有利,就是当你创建一个shell脚本并希望传递命令行参数时,你可以轻松地通过以下方式启动该脚本:
`
#!/usr/bin/env clojure
`
然后让}}机制确保}}被路由到该函数,而无需在shell脚本的开头(在Linux中无法在shebang行中指定解释器参数)使用{{-f some-qualified/function}}。