在golang设置HCL字段

在golang设置HCL字段,go,hcl,Go,Hcl,我将在golang中设置HCL字段。 这里是一个例子 package main import ( "log" "os" "github.com/hashicorp/hcl" ) const ( EXAMPLE_HCL = `config = "/etc/test.conf"` ) type HCLConfig struct { ConfigFile string `hcl:"config"` } func main()

我将在
golang
中设置HCL字段。 这里是一个例子

package main

import (
    "log"
    "os"

    "github.com/hashicorp/hcl"
)

const (
    EXAMPLE_HCL = `config = "/etc/test.conf"`
)

type HCLConfig struct {
    ConfigFile          string     `hcl:"config"`
}

func main() {
    cfg := &HCLConfig{}

    hclTree, err := hcl.Parse(EXAMPLE_HCL)
    if err != nil {
        os.Exit(1)
    }

    // how to modify tree to override config field

    if err := hcl.DecodeObject(&cfg, hclTree); err != nil {
        os.Exit(1)
    }

    log.Printf("%+v\n", cfg)
}
调用函数
hcl.DecodeObject
后,可以覆盖
config
字段

但在调用
hcl.DecodeObject
之前,我将覆盖该字段


有什么方法可以修改HCL树吗?

有什么特别的理由不只是在解码后设置字段吗?是的,我有一些理由。例如,在将HCL选项传递到实际结构字段之前,我将检查它们的有效性