(defn lines
"Given an open reader, return a lazy sequence of lines"
[^java.io.BufferedReader reader]
(take-while identity (repeatedly #(.readLine reader))))
这条线是什么意思? - > [^java.io.BufferedReader reader]
我也知道这是一个愚蠢的问题。你能给我看一下我自己可以阅读的文件吗?所以我不必在这里问它:)
答案 0 :(得分:4)
您可以在此处找到文档:
https://clojure.org/reference/java_interop#typehints
Clojure支持使用类型提示来帮助编译器避免在性能关键的代码区域中反映。通常,在存在已知性能瓶颈之前,应避免使用类型提示。类型提示是放置在编译器使用的符号或表达式上的元数据标记。它们可以放在函数参数,let-bound名称,var名称(定义时)和表达式上:
(defn len [x] (.length x)) (defn len2 [^String x] (.length x)) ...
一旦将类型提示放在标识符或表达式上,编译器就会尝试在编译时解析对方法的任何调用。此外,编译器将跟踪任何返回值的使用并推断它们的使用等类型,因此需要很少的提示才能获得完全编译时解析的一系列调用。
您还应该查看:
永远不会忘记打开浏览器标签The Clojure CheatSheet
您可能还希望查看this answer。