gpt4 book ai didi

clojurescript - 通过字符串名称调用 clojurescript 函数

转载 作者:行者123 更新时间:2023-12-04 17:35:01 25 4
gpt4 key购买 nike

我正在寻找一种在 clojureScript 中根据字符串名称调用函数的方法。

就像是:

(call "my-fun" args) 

欢迎任何帮助

最佳答案

一个应该有效的非常hackish的解决方案:

(ns eval.core
(:require [clojure.string :as str]))

(defn ->js [var-name]
(-> var-name
(str/replace #"/" ".")
(str/replace #"-" "_")))


(defn invoke [function-name & args]
(let [fun (js/eval (->js function-name))]
(apply fun args)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Usage:

(ns example.core
(:require [eval.core :as e]))

(defn ^:export my-fn [arg1 arg2] ;; Note the export!
(println arg1 arg2)
arg2)

(e/invoke "example.core/my-fn" 5 6) ;=> 5 6

关于clojurescript - 通过字符串名称调用 clojurescript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345663/

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