如何在 Clojure 中对字符串向量进行类型提示?

How do I type-hint a Vector of Strings in Clojure?

我的函数returns一个序列,例如字符串向量。

这是一个简单的例子(实际上它是从类型推断中派生出来的,但它说明了这一点):

(defn ^PersistentVector myfunction [a b] 
    ;; do something with strings
)

(我的函数 ["A" "B"])

如何输入提示以表明这些是特定的字符串?

类似于 ^PersistentVector<String>?

A PersistentVector 可以包含任何类型的对象,没有办法强制内容的类型,所以不存在这种类型提示的符号。你可以让它 return 一个 Java 字符串数组,然后你可以使用方便的类型提示 (defn ^"[Ljava.lang.String;" function [a b]):

(defn ^"[Ljava.lang.String;" function [a b]
  (into-array String [a b]))

(type (function "a" "b"))
;; => [Ljava.lang.String;