我需要在groovy中创建一个map数组的字符串。
必填字符串= ^(123|456|789)
目前我正在做类似下面的事情,这会导致生产框中的性能问题还是应该使用StringBuffer java类?
def getProjectList(def caseResult) {
def projectList = ""
caseResult.each { projno ->
if (projectList.length() == 0) {
projectList = "^(${projno.project_no}|"
} else {
if (projectList.indexOf(projno.project_no) == -1)
projectList+="${projno.project_no}|"
}
}
projectList = projectList.substring(0, projectList.length() - 1)
projectList += ')'
return projectList
}
答案 0 :(得分:2)
我会为了阅读而轻松...
def getProjectList(def caseResult) {
"^(${caseResult.project_no.join('|')})"
}
实际上,你只想要独一无二的吗?
def getProjectList(def caseResult) {
"^(${caseResult.project_no.unique().join('|')})"
}
答案 1 :(得分:0)
我需要在groovy中创建一个map数组的字符串。
然后定义参数类型将非常有用。 返回类型也是。
这会导致生产箱中的性能问题
好吧,首先定义性能问题。您是否认为您的代码存在任何性能问题?如果没有,它看起来像典型的“过早优化”
我应该使用StringBuffer java类
如果你担心性能,那么你应该使用StringBuilder,因为StringBuffer是线程安全的,会带来一些性能损失。
如果您的代码遇到任何问题,那么它的可读性比性能要好。 我推荐你这个专门针对这些问题的StackExchange网站 - https://codereview.stackexchange.com/ - 试一试!