所有以下断言都是true.
def obj = ["XXX"]
assert true && obj // OK
assert obj // OK
assert ![] // OK
Run Code Online (Sandbox Code Playgroud)
为什么强制不能在下一个工作?
assert true == obj // List is NOT coerced to true
Run Code Online (Sandbox Code Playgroud)
Jer*_*ist 10
因为==运算符不期望布尔操作数.
在第二种情况下应用强制,因为&&运算符需要布尔操作数,而在第三种情况下因为assert需要布尔操作数.但是==运算符接受任何类型的操作数,如果类型或值不同,则返回false.