如何在 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;
我的函数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;