Groovy Truth:string到boolean不一致?

Groovy Truth:string到boolean不一致?,第1张

概述在groovy: println 'test' as Boolean //trueprintln 'test'.toBoolean() //falseprintln new Boolean('test') //false 有人可以澄清这个行为吗? 这两个 println 'test'.toBoolean() //falseprintln new Boolean('test') //false 在groovy:

println 'test' as Boolean //trueprintln 'test'.toBoolean() //falseprintln new Boolean('test') //false

有人可以澄清这个行为吗?

解决方法 这两个

println 'test'.toBoolean() //falseprintln new Boolean('test') //false

使用接受单个String参数的构造函数来实例化一个java.lang.Boolean。根据the javadocs,规则是:

Allocates a Boolean object representing the value true if the string argument is not null and is equal,ignoring case,to the string “true”. Otherwise,allocate a Boolean object representing the value false.

在上述两种情况下,String不匹配“true”(不区分大小写),因此创建的布尔值为false。

相比之下,“测试”为布尔遵循了coercion to a boolean的Groovy语言规则,允许您写:

if ('hello') {    println 'this string is truthy'}

对于String,规则是如果它为空或为空,则它的计算结果为false,否则为true。

我同意这可以被认为有点不一致,但是考虑到与java.lang.Boolean和实用程序的一致性的一致性,我认为他们选择后者是正确的。

总结

以上是内存溢出为你收集整理的Groovy Truth:string到boolean不一致?全部内容,希望文章能够帮你解决Groovy Truth:string到boolean不一致?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存