go template:如何将从函数返回的变量传递给管道中的下一个命令
go template: how to pass the variable returned from a function to next command in pipeline
我有这个功能。
func OrderedParamsFromUri(uri string) []string {
matches := pathParamRE.FindAllStringSubmatch(uri, -1)
result := make([]string, len(matches))
for i, m := range matches {
result[i] = m[1]
}
return result
}
我想在我的模板中使用这个函数来检查返回的 result
是否包含项目。
我知道我可以做这样的事情:
( .OperationId | OrderedParamsFromUri | //here i want to check for the empty slice)
.OperationId => this is the argument.
我知道我可以使用 if not .returnedSlice
检查返回的切片是否为空
但是如何将这两者结合起来呢?
两者都
{{ if not (.OperationId | OrderedParamsFromUri) }}
empty
{{ else }}
{{ (.OperationId | OrderedParamsFromUri) }}
{{ end }}
或者
{{ if not (OrderedParamsFromUri .OperationId) }}
empty
{{ else }}
{{ (OrderedParamsFromUri .OperationId) }}
{{ end }}
我有这个功能。
func OrderedParamsFromUri(uri string) []string {
matches := pathParamRE.FindAllStringSubmatch(uri, -1)
result := make([]string, len(matches))
for i, m := range matches {
result[i] = m[1]
}
return result
}
我想在我的模板中使用这个函数来检查返回的 result
是否包含项目。
我知道我可以做这样的事情:
( .OperationId | OrderedParamsFromUri | //here i want to check for the empty slice)
.OperationId => this is the argument.
我知道我可以使用 if not .returnedSlice
检查返回的切片是否为空
但是如何将这两者结合起来呢?
两者都
{{ if not (.OperationId | OrderedParamsFromUri) }}
empty
{{ else }}
{{ (.OperationId | OrderedParamsFromUri) }}
{{ end }}
或者
{{ if not (OrderedParamsFromUri .OperationId) }}
empty
{{ else }}
{{ (OrderedParamsFromUri .OperationId) }}
{{ end }}