Go模板打印数组的长度

Go template to print an array's length

我没有围棋经验。我使用一个工具 Podman,它是用 Go 编写的,它将其 --format 选项记录为,

-f, --format string   Format the output to a Go template or json (default "json")

我可以看到我想要的,

podman inspect localhost/myimage --format "{{.RootFS.Layers.length}}"

但是,如果我想知道有多少个元素,我该怎么办?我用 .count.length.len 尝试了不同的字段,但我总是得到,

can't evaluate field FieldName in type []digest.Digest

我也试过将其调用为 {{len(RootFS.Layers)}}。我只是有点蛮力。当我执行上述操作时,我得到,

ERRO[0000] Error printing inspect output: template: all inspect:1: unexpected "(" in operand

获取数组元素计数的正确 Go 模板是什么?

go templating 语言和语法与 go 语言本身不同 - 因此您所见的 len(RootFS.Layers) 不起作用。

template docs 开始,您使用的是正确的函数 len,但模板语法不需要括号。所以使用:

{{ len .RootFS.Layers }}

仅供参考:快速 intro to Go templates