gpt4 book ai didi

clojure - 在 lein repl 中传递命令行参数

转载 作者:行者123 更新时间:2023-12-02 15:53:43 28 4
gpt4 key购买 nike

我有一个接受命令行参数的主函数声明

(defn -main [& args]
(let [options (cli/parse-opts args [["-k", "--key KEY","Secret key"]
["-u", "--user USER", "User name"]])]
(println user key)))

我正在尝试将其加载到 lein repl 中进行调试,但无法弄清楚如何通过 REPL 传递参数。

我尝试了多种方法来通过 repl 传递参数,包括

(-main "key-val""user-val") (打印 nil nil)

(-main ("key-val""user-val")) (打印 nil nil)

我尝试了多次失败的尝试,并尝试传递抛出强制转换错误的列表或向量。

最佳答案

您已经使用键“-k”和“-u”定义了参数,但尚未将键传递给函数,因此解析器将无法猜测您期望它得到什么。工作版本是这样的:

user> (defn -main [& args]
(let [options (cli/parse-opts args [["-k", "--key KEY","Secret key"]
["-u", "--user USER", "User name"]])
{:keys [key user]} (:options options)]
[key user]))
#'user/-main

user> (-main "-k" "key-val" "-u" "user-val")
;;=> ["key-val" "user-val"]

user> (-main "--key" "key-val" "--user" "user-val")
;;=> ["key-val" "user-val"]

关于clojure - 在 lein repl 中传递命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45416372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com