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-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
参考:[CLJ-1030](https://clojure.atlassian.net/browse/CLJ-1030) (由 alex+import 报告)
...