Tôi đang chạy Clojure 1.3.0 với La Clojure trong IntelliJ IDEA khi đọc niềm vui của Clojure, và trên phần 4.1.3 (trang 64), các tác giả thể hiện tràn số nguyên với đoạn mã sau:Không nhận được tràn số nguyên trong Clojure?
(+ Integer/MAX_VALUE Integer/MAX_VALUE)
;=> java.lang.ArithmeticException: integer overflow
Tuy nhiên, khi tôi thử nó ra trên REPL, tôi nhận được thay vì
user=> (+ Integer/MAX_VALUE Integer/MAX_VALUE)
4294967294
user=> Integer/MAX_VALUE
2147483647
gì đang xảy ra ở đây? Tại sao các số nguyên của tôi được thêm chính xác thay vì tràn?
Tôi có ngoại lệ đó, bạn có chắc không ..? –
@KugathasanAbimaran Tôi đã sao chép tất cả những thứ đó, vì vậy tôi khá chắc chắn ...: O – wrongusername
@wrongusernaem: Tôi đang sử dụng '1.2.0' và nhận ngoại lệ đó. Có vẻ như cuốn sách [ấn bản đó] sử dụng '1.2.0'. Và ** gertalot ** có giải pháp. –