В своем ответе на мой собственный вопрос здесь Я разместил код, и @Dave Newton был достаточно любезен, чтобы предоставить мне gist и показать мне ошибку в моем не очень-Гроовые пути.<-- Groovy pun
Я воспользовался его советом и обновил свой код до Groovier.С тех пор ссылка, которую я делаю (которую Дэйв представляет с переменной replaceWith
), изменилась.Теперь представление замыкания того, что я хочу сделать, будет выглядеть так:
int i = 1
errorList = errorLinksFile.readLines().grep { it.contains "href" }.collect { line ->
def replaceWith = "<a href=\"${rooturl}${build.url}parsed_console/log_content.html#ERROR${i++}\">"
line.replaceAll(pattern, replaceWith).minus("</font>")
}
И представление цикла, которое я хочу сделать, будет выглядеть так:
def errorList = []
def i = 1
for(line in errorLinksFile.getText().split("\n")){
if(!line.contains("href")){
continue
}
errorList.add(line.replaceAll(pattern, "<a href=\"${rooturl}${build.url}parsed_console/log_content.html#ERROR${i++}\">").minus("</font>"))
}
Закрывающая версия определенно более лаконична, но я боюсь, что если я всегда пойду по пути «Groovier», то другим программистам будет сложнее понять код, чем простой цикл for.Так когда же Groovier лучше и когда я должен выбрать код, который, вероятно, будет понятен всем программистам?