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 }}

https://play.golang.com/p/rkt7wP_vS4n