Łączenie łańcuchów z Groovy
Jaki jest najlepszy (idiomatyczny) sposób na połączenie Strings w Groovy?
Opcja 1:
calculateAccountNumber(bank, branch, checkDigit, account) {
bank + branch + checkDigit + account
}
Opcja 2:
calculateAccountNumber(bank, branch, checkDigit, account) {
"$bank$branch$checkDigit$account"
}
Założyłem interesujący punkt na ten temat w starej witrynie Groovy: rzeczy, które możesz zrobić, ale lepiej pozostawić to niezrealizowane.
Tak jak w Javie, możesz łączyć ciągi za pomocą symbolu „+”. Ale Java potrzebuje tylko jednego z dwóch elementów wyrażenia „+”, aby być ciągiem, niezależnie od tego, czy jest na pierwszym miejscu, czy na ostatnim. Java użyje metody toString () w obiekcie non-String wyrażenia „+”. Ale w Groovy po prostu powinieneś być bezpieczny, pierwszy element wyrażenia „+” implementuje metodę plus () we właściwy sposób, ponieważ Groovy będzie go szukał i używał. W Groovy GDK tylko klasy Number i String / StringBuffer / Character mają zaimplementowaną metodę plus () do łączenia łańcuchów. Aby uniknąć niespodzianek, zawsze używaj GStrings.