go模板:如何将从函数返回的变量传递给管道中的下一个命令

问题描述 投票:1回答:1

我具有此功能。

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检查返回的切片是否为空或但是如何结合这两个呢?

go go-templates
1个回答
1
投票

两个

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

© www.soinside.com 2019 - 2024. All rights reserved.