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

欢迎!请访问关于页面以获取更多关于这个平台的信息。

0
java.data

调用具有假布尔属性的from-java可以对boxed Booleans返回非 Boolean/FALSE值。
这会导致一个等于false的布尔值,但在if的true路径中。

`
(def bool (:absolute (from-java (URI. ""))))

bool
=> false
(= bool false)
=> true
(if bool true false)
=> false
`

这会导致非常令人困惑的行为。
由于Clojure不会改变if的行为(https://dev.clojure.org/jira/browse/CLJ-1718),而我们无法控制布尔值的构造,我认为from-java应该意识到这个问题并修复它。

可以通过添加一个额外的布尔方法来修复这个问题,该方法以正确的方式重构布尔值,尽管我不确定最好的方式是什么样的。

7 个答案

0

评论由:iamdrowsy

是否可以编辑描述?
代码的最后一行显示的是预期的行为,而不是观察到的。

(if bool true false) => true

这是当前解析到的。

0

评论由:iamdrowsy

是否可以编辑描述?
代码的最后一行显示的是预期的行为,而不是观察到的。

(if bool true false) => true

这是当前解析到的。

0

评论者:jafingerhut

附带的路径 jdata-9-v1.patch,将数据转换为使用 clojure.core/boolean 的 Java Boolean 值

0

评论者:jafingerhut

附带的路径 jdata-9-v1.patch,将数据转换为使用 clojure.core/boolean 的 Java Boolean 值

0

评论者:bowbahdoe

在转换一些丑陋的生成 WSDL 对象时遇到了这个问题。有些将 Boolean 作为属性值,而另一些则是 Object,因为它们的类型在给定的模式中没有指定。

0

评论者:bowbahdoe

在转换一些丑陋的生成 WSDL 对象时遇到了这个问题。有些将 Boolean 作为属性值,而另一些则是 Object,因为它们的类型在给定的模式中没有指定。

0
...