3 回答
TA贡献1868条经验 获得超4个赞
您将无法调用在模板中返回两个值的函数,除非这些值之一是错误。这是为了保证您的模板在运行时工作。如果您有兴趣,这里有一个很好的答案可以解释这一点。
要解决您的问题,您需要 1) 将您的函数分解为两个单独的 getter 函数,您可以在模板中的适当位置调用它们;或 2) 让您的函数返回一个包含内部值的简单结构。
我不知道哪个对你更好,因为我真的不知道你的实现需要什么。Foo 和 Baz 没有给出很多线索。;)
这是选项一的快速示例:
type Foo struct {
Name string
}
func (f Foo) GetA() (int) {
return 1
}
func (f Foo) GetB() (int) {
return 5
}
然后相应地修改模板:
const tmpl = `Name: {{.Name}}, Ints: {{.GetA}}, {{.GetB}}`
希望这会有所帮助。:)
TA贡献1828条经验 获得超13个赞
还可以返回具有多个字段的结构并使用它们。
type Result struct {
First string
Second string
}
func GetResult() Result {
return Result{First: "first", Second: "second"}
}
然后在模板中使用
{{$result := GetResult}}
{{$result.First}} - {{$result.Second}}
- 3 回答
- 0 关注
- 154 浏览
添加回答
举报