2024年Clojure状态调查中分享您的想法!

欢迎!请查看关于页面以了解更多关于这个功能的信息。

0
错误

观察到的行为

`
(int "0") =>
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Character

期望的行为
(int "0") =>
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
或者
IllegalArgumentException
`

6个答案

0

评论者:jafingerhut

如果有人想改进在这种情况下int的行为,他们还应该考虑对unchecked-int、char和unchecked-char的错误消息进行类似的改进。

0

评论者:michael-drogalis

于2013年1月6日改进了patch-int-char-casting-error-messages.diff。

0

评论者:alexmiller

{{int}}知道如何将数字和字符强制转换为int。它目前不支持字符串。值得考虑添加此行为或将int的docstring描述得更详细一些,而不仅仅是“强制转换为int”。

0

评论者:michael-drogalis

string-coerce-to-int.diff
2013年9月4日
修复了整型和字符的强制转换错误信息,并允许按照Alex Miller的建议从String转换为int。

0

评论者:michael-drogalis

特别地,(map int (link: "1" "2" "3"))使用此补丁会在"ClassCastException java.lang.String cannot be cast to java.lang.Character"错误中失败。
它来源于RT.java的intCast(Object)。因此,当它们被映射时,似乎字符串失去了它们的类型。
我猜想这是故意的吗?

0
参考:[https://clojure.atlassian.net/browse/CLJ-1030](https://clojure.atlassian.net/browse/CLJ-1030) (由alex+import报告)
...