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日改进了int-chars-casting-error-messages.diff补丁。

0

评论者:alexmiller

{{int}}知道如何将数字和字符强制转换为int。它目前不支持字符串。我们可以添加此行为,或者使int的docstring比“强制转换为int”描述更为详细。

0

评论者:michael-drogalis

string-coerce-to-int.diff
2013年9月4日
修复了 int 和 char 的类型转换错误信息,并允许按照 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 报告)
...