我有一个元素数组/切片(在我的示例中为字节),我想使用ftm.Println
. 我当然可以只遍历数组中的元素并以这种方式打印它们,但我认为如果我只是使用...
运算符传递元素会更好/更短。
所以我尝试了这个:
b := []byte{1,2,3,4} fmt.Println(b...)
这会导致错误:
不能在 fmt.Println 的参数中使用 b([]byte 类型的变量)作为 []any 类型”
有人可以解释为什么这不起作用吗?
我假设这fmt.Println
是一个可变参数函数,能够处理任意数量的任意类型的元素([]any
错误消息中的 似乎表明是这种情况)。Println
所以当我传递 4 个字节时似乎无法处理它,这让我有点惊讶。
事实上,当我们像这样传递这些相同的字节时,它工作得很好:
fmt.Println(b[0], b[1], b[2], b[3])
那么为什么它在使用时不起作用b...
呢?这本质上不是一回事吗(即在这两种情况下,我们所做的都是将 4 个字节作为单独的参数传递给fmt.Println
?
白衣染霜花