gpt4 book ai didi

clojure - 在 Clojure 中获取函数的参数类型提示

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

我想提取函数参数的类型提示信息,但似乎找不到访问该信息的方法。

例如,假设我有以下功能:

(defn ^Double do-something [^String a, ^String b]
5.0)

拉标签很简单:
(:tag (meta #'do-something)) ; => java.lang.Double

然而,对于论点,这样的事情是行不通的:
(:arglists (meta #'do-something)) ; => ([a b])

这只是给我参数而不是类型信息。有没有办法获得 a 的类型和 b ?

我想这样做的原因是因为我正在编写一个工具来分析/记录函数,如果一个函数是类型提示的,我想知道。

仅出于文档目的向代码添加类型提示似乎不是一个特别好的主意,但我只想使用这些信息,如果它首先已经存在并且没有其他类型信息存在(例如,如果core.typed 被使用)。

最佳答案

您需要获取参数的元数据:

user=> (map meta (first (:arglists (meta #'do-something))))
({:tag String} {:tag String})

关于clojure - 在 Clojure 中获取函数的参数类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116277/

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