If statement If-Else条件

If statement If-Else条件,if-statement,go,go-templates,If Statement,Go,Go Templates,我对根据某些条件向GO模板添加内容感兴趣。我有一个定义如下的结构- { "resourceActions": { "update": { "input": null, "output": "instance", }, "stop": { "input": "instanceStop", "output": "instance", }, "console": { "input": "instanceConso

我对根据某些条件向GO模板添加内容感兴趣。我有一个定义如下的结构-

{

    "resourceActions": {
    "update": {
    "input": null,
    "output": "instance",
    },
    "stop": {
    "input": "instanceStop",
    "output": "instance",
    },
    "console": {
    "input": "instanceConsoleInput",
    "output": "instanceConsole",
    },
    "restart": {
    "input": null,
    "output": "instance",
    },
    "remove": {
    "input": null,
    "output": "instance",
    },

}
{
    {{ $temp := .schema.Id }}
    {{if .Input}} func (c *Container) {{$key }}(input *{{.Input}}) *{{$temp}}{} {{else}} func (c *Container) {{$key}}() *{{$temp}}{}{{end}}
}
我需要迭代“resourceActions”,如果其中定义的操作(如update、restart等)的输入为null,则生成“A()”,否则生成(input*{inputVAL})

示例-

{

    for Update -  A()
    for stop -  A(input *instanceStop)
    for console - A(input *instanceConsoleInput)
    for restart - A()

}

我如何在GO tempaltes中做到这一点

我这样解决了我的问题-

{

    "resourceActions": {
    "update": {
    "input": null,
    "output": "instance",
    },
    "stop": {
    "input": "instanceStop",
    "output": "instance",
    },
    "console": {
    "input": "instanceConsoleInput",
    "output": "instanceConsole",
    },
    "restart": {
    "input": null,
    "output": "instance",
    },
    "remove": {
    "input": null,
    "output": "instance",
    },

}
{
    {{ $temp := .schema.Id }}
    {{if .Input}} func (c *Container) {{$key }}(input *{{.Input}}) *{{$temp}}{} {{else}} func (c *Container) {{$key}}() *{{$temp}}{}{{end}}
}
这在GO模板中工作良好