0

構造体に解決される Go テンプレートがあります。bytes.Bufferテンプレート実行関数の結果を .xml に戻すにはどうすればよいですかstruct遊び場

package main

import (
    "bytes"
    "encoding/gob"
    "fmt"
    "log"
    "text/template"
)

type Data struct {
    Age      int
    Username string
    SubData  SubData
}
type SubData struct {
    Name string
}

func main() {
    s := SubData{Name: "J. Jr"}
    d := Data{Age: 26, Username: "HelloWorld", SubData: s}
    tmpl := "{{ .SubData }}"
    t := template.New("My template")
    t, _ = t.Parse(string(tmpl))
    buffer := new(bytes.Buffer)
    t.Execute(buffer, d)
    fmt.Println(buffer)

    // writing
    enc := gob.NewEncoder(buffer)
    err := enc.Encode(s)
    if err != nil {
        log.Fatal("encode error:", err)
    }

    // reading
    buffer = bytes.NewBuffer(buffer.Bytes())
    e := new(SubData)
    dec := gob.NewDecoder(buffer)
    err = dec.Decode(e)
    if err != nil {
        log.Fatal("decode error:", err)
    }
    fmt.Println(e, err)
}
4

1 に答える 1

5

それはいけません。これは単純に不可能です。

しかし、一体なぜ、このようなことをしたいと思う人がいるのだろうか? gob経由で直接送信して、Data直接デコードしてみませんか?なぜあなたが手に入れたテキスト表現を作成するのですか?

于 2014-08-07T11:38:18.597 に答える