问题出在你的for format := range formats构造中.请记住,range formats它将返回两个值:slice*的实际值及其索引(这是第一个值).所以"%q => " + format + "\n"实际上会尝试"%s => "与数字迭代索引连接.
for format := range formats
range formats
"%q => " + format + "\n"
"%s => "
如果要迭代切片中包含的值,请使用以下循环:
for _, format := range formats { // ... }