0

考虑一下:

user=> (let [i Integer/MAX_VALUE] (+ i i))
java.lang.ArithmeticException: integer overflow (NO_SOURCE_FILE:0)
user=> (def i Integer/MAX_VALUE) 
#'user/i
user=> (+ i i)
4294967294

为什么let精确提升不会发生并且我们得到溢出异常,但def精确提升到Long?它是一个错误吗?

4

0 回答 0