3

golang テンプレートを変換しようとしていますが、一致が見つからない場合は無視できます。それは可能ですか?

遊び場

package main

import (
"bytes"
"fmt"
"text/template"
)
type Person struct {
Name string
Age  int
}
type Info struct {
Name string
Id   int
}

func main() {
msg := "Hello {{ .Id }} With name {{ .Name }}"
p := Person{Name: "John", Age: 24}
i := Info{Name: "none", Id: 5}

t := template.New("My template")
t, _ = t.Parse(msg)

buf := new(bytes.Buffer)
t.Execute(buf, p)
fmt.Println(buf.String())

buf = new(bytes.Buffer)
t.Execute(buf, i)
fmt.Println(buf.String())
}

これを印刷してほしい

Hello {{ .Id }} with name John Hello 5 With name none

4

2 に答える 2

0

テンプレートには、必要なことを実行できる if ステートメントを含めることができます。次の例では、提供されている場合はリストを表示し、提供されていない場合はメッセージを表示できます。

    {{if .MyList}}
      {{range .MyList}}
        {{.}}
      {{end}}
    {{else}}
      There is no list provided.
    {{end}}

このアプローチを使用すると、必要なものを達成できると思います。しかし、未処理のものをそのまま残しておきたいので、きれいではないかもしれません{{.Id}}.

于 2014-08-01T00:04:00.767 に答える