如何在groovy中显示值是真还是假?我正在使用Eclipse作为我的IDE。
assert 4 * ( 2 + 3 ) - 6 == 14 //integers only
而且我也不明白在Groovy中'断言'太好了。它是否像Java中的if()语句/ boolean?
“断言”在Groovy中扮演什么角色?
答案 0 :(得分:34)
断言类似于if,它验证您提供的表达式:如果表达式为true,则继续执行到下一个语句(并且不打印任何内容),如果表达式为false,则会引发AssertionError。
您可以自定义错误消息,提供由冒号分隔的消息,如下所示:
assert 4 * ( 2 + 3 ) - 5 == 14 : "test failed"
将打印:
java.lang.AssertionError: test failed. Expression: (((4 * (2 + 3)) - 5) == 14)
但我必须更改测试的值,以使其失败。
断言的使用取决于您的口味:您可以使用它们来断言在开始工作之前必须是真实的东西(参见design by contract)。
E.g。一个需要一个正数的函数,可以测试一个事实,即参数是肯定的,做一个断言作为第一个语句:
def someFunction(n) {
assert n > 0 : "someFunction() wants a positive number you provided $n"
...
}
答案 1 :(得分:9)
Groovy断言现在令人印象深刻!它们实际上会打印出语句中每个变量的值(非常适合调试)
例如,如果b为5,a为{it ^ 2}且c为15,则可能会打印出类似的内容:assert( a(b) == c)
. | | | |
. 25 | != 15
. 5
(好吧 - 类似的东西 - Groovy可能看起来好多了。)
如果我们能在异常线上进行这种打印......
答案 2 :(得分:1)
断言'断言'表达式的结果将是真正的