优化代码

This commit is contained in:
刘祥超
2022-04-04 19:44:45 +08:00
parent 8722c8a34a
commit 7908d70750

View File

@@ -14,6 +14,12 @@ var variableMapping = map[string][]interface{}{} // source => [holder1, ...]
var variableLocker = sync.RWMutex{} var variableLocker = sync.RWMutex{}
var regexpNamedVariable = regexp.MustCompile(`\${[\w.-]+}`) var regexpNamedVariable = regexp.MustCompile(`\${[\w.-]+}`)
var stringBuilderPool = sync.Pool{
New: func() interface{} {
return &strings.Builder{}
},
}
// ParseVariables 分析变量 // ParseVariables 分析变量
func ParseVariables(source string, replacer func(varName string) (value string)) string { func ParseVariables(source string, replacer func(varName string) (value string)) string {
if len(source) == 0 { if len(source) == 0 {
@@ -46,7 +52,9 @@ func ParseVariables(source string, replacer func(varName string) (value string))
} }
// 多个占位时使用Builder // 多个占位时使用Builder
var builder = strings.Builder{} var builder = stringBuilderPool.Get().(*strings.Builder)
builder.Reset()
defer stringBuilderPool.Put(builder)
for _, h := range holders { for _, h := range holders {
holder, ok := h.(VariableHolder) holder, ok := h.(VariableHolder)
if ok { if ok {