Tag: gstring

Groovy在GStringImpl上使用equals()和==的不同结果

根据groovy文档 ,==只是一个'聪明的'equals(),因为它也避免了NullPointerException。 所以,如果对象不为null,==和equals()应该返回相同的值。 但是,执行以下脚本时,我得到了意想不到的结果: println "${'test'}" == 'test' println "${'test'}".equals('test') 我得到的输出是 true false 这个例子可以在这里find。 这是一个已知的与GStringImpl有关的错误或者我错过了什么?

使用Groovy进行string连接

在Groovy中连接string的最佳(惯用)方式是什么? 选项1: calculateAccountNumber(bank, branch, checkDigit, account) { bank + branch + checkDigit + account } 选项2: calculateAccountNumber(bank, branch, checkDigit, account) { "$bank$branch$checkDigit$account" } 我已经在旧的Groovy网站上build立了一个有关这个主题的有趣的观点:你可以做的事情,但最好不要离开。 和Java一样,你可以用“+”符号连接string。 但是,Java只需要将“+”expression式中的两项中的一项作为一个string,而不pipe它是在第一位还是在最后一位。 Java将在你的“+”expression式的非String对象中使用toString()方法。 但是在Groovy中,你应该是安全的,你的“+”expression式的第一项以正确的方式实现了plus()方法,因为Groovy将会search和使用它。 在Groovy GDK中,只有Number和String / StringBuffer / Character类实现了连接string的plus()方法。 为了避免意外,请始终使用GStrings。