Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure中类型提示的范围?_Clojure_Clojure Java Interop - Fatal编程技术网

Clojure中类型提示的范围?

Clojure中类型提示的范围?,clojure,clojure-java-interop,Clojure,Clojure Java Interop,我正在寻找Clojure中类型提示范围的信息,例如,如果我编写 (defn big-add [^BigInteger x y] (.add x y)) 那和我的一样吗 (defn big-add [^BigInteger x ^BigInteger y] (.add x y)) ??假设我写信 (defn big-sum ([] BigInteger/ZERO) ([^BigInteger x] x) ([^BigInteger x & more] (.add x (a

我正在寻找Clojure中类型提示范围的信息,例如,如果我编写

(defn big-add [^BigInteger x y] (.add x y))
那和我的一样吗

(defn big-add [^BigInteger x ^BigInteger y] (.add x y))
??假设我写信

(defn big-sum 
  ([] BigInteger/ZERO)
  ([^BigInteger x] x)
  ([^BigInteger x & more] (.add x (apply big-sum more) )))
Clojure是否假设
more
中充满了
biginger
?假设我不想告诉你?我会做类似的事情吗

(defn foo [^BigInteger x & ^Long more] ...)
?

只需将warn on reflection设置为true,然后使用无法解析类型的函数测试表达式

答复:

最后

(defn testo [s & ^java.lang.String more]
      (.charAt (first more) 1))
=> CompilerException java.lang.RuntimeException: & arg cannot have type hint, compiling:(NO_SOURCE_PATH:1:1) 
您的每个问题的简短答案都是否定的:(

(defn testo [s & ^java.lang.String more]
      (.charAt (first more) 1))
=> CompilerException java.lang.RuntimeException: & arg cannot have type hint, compiling:(NO_SOURCE_PATH:1:1)