评论者:mfikes
可以考虑的一个替代方案:模仿 ClojureScript 中的现有设施,它具有 * }
`
cljs.user=> (doc main-cli-fn)
cljs.core/main-cli-fn
当编译为命令行目标时,设置到 main-cli-fn 的任何函数都会使用命令行
main-cli-fn 被调用的参数作为参数
作为示例 main-cli-fn
`
为 {{foo.cljs}}
`
(defn greet [name])
(println (str "Hello " name "!"))
(set! main-cli-fn greet)
`
然后
$ planck foo.cljs Friend Hello Friend!
这种情况下,与 {{-m}} 或 {{-f}} 方法相比,确实有一定的优势。如果你创建了一个以 #! 开头的脚本并且希望传递命令行参数,简单地以以下方式启动脚本将非常方便:
`
#!/usr/bin/env clojure
`
然后让 } 机制保证 } 能够路由到该函数,而无需在将 {{-f some-qualified/function}} 放入 shebang 行,因为在 Linux 上无法在 shebang 行中指定解释器参数。