mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-11 01:50:26 +08:00
优化代码
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user