ホームページ >バックエンド開発 >Golang >Go テンプレート if 条件

Go テンプレート if 条件

王林
王林転載
2024-02-06 11:24:13428ブラウズ

Go 模板 if 条件

質問内容

and関数とeq/ne関数を組み合わせるにはどうすればよいですか?

この断片は私が書きました

リーリー

ターゲットは次のとおりです:

  • アラートに 2 つのラベル infoalert: truetopic:database が含まれている場合、grafana リンクのみが表示されます
  • アラートにタグ topic:database のみが含まれ、infoalert:true が含まれていない場合は、databsse リンクのみが表示されます

このエラーが発生して、条件付き {{- if and eq .commonlabels.infoalert "true" eq .commonlabels.topic "database" -}} の構文が間違っているようです。 alertmanager.log:

{{ define "opsgenie.default.tmpl" }}
  <font size="+0"><b>{{.commonlabels.alertname }}</b></font>
  {{- range $i, $alert := .alerts }}
  <font size="+0">{{ .annotations.description }}</font>
  {{- end -}}
  {{- "\n" -}}
  {{- "\n" -}}
  {{- if and eq .commonlabels.infoalert "true" eq .commonlabels.topic "database" -}}
  grafana: https://{{ .commonlabels.url }}
  {{- "\n" -}}{{- end -}}
  {{- if and ne .commonlabels.infoalert "true" eq .commonlabels.topic "database" -}}
  database:
    • https://{{ .commonlabels.url }}/
    • https://{{ .commonlabels.url }}/
  {{- "\n" -}}{{- end -}}
  {{- end -}}
  {{- end -}}
{{- end -}}

正解


式をグループ化するには括弧を使用してください:

リーリー

このテスト可能な例を確認してください:

リーリー

これは出力されます (go playground で試してください):

リーリー

以上がGo テンプレート if 条件の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。