gpt4 book ai didi

clojure - 当函数名称存储为字符串值时调用函数

转载 作者:行者123 更新时间:2023-12-02 12:42:18 25 4
gpt4 key购买 nike

我有一个函数 a 定义为

(defn a [] "Hello")

我还有另一个变量 b

(def b "a")

我想调用由'b'的字符串值表示的函数,即应该调用'a'。我怎么做?

最佳答案

您需要将其转换为符号,然后解析它:

user=> ((resolve (symbol b)))
"Hello"

user=> ((-> b symbol resolve))
"Hello"

为了澄清一点,这里有一个稍微详细一点的解决方案:

(let [func (-> b symbol resolve)]
(func arg1 arg2 arg3)) ; execute the function

关于clojure - 当函数名称存储为字符串值时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293368/

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