我想知道为什么不能在 go 中执行以下操作:
func main() {
stuff := []string{"baz", "bla"}
foo("bar", stuff...)
}
func foo(s ...string) {
fmt.Println(s)
}
在我的理解中,切片...“爆炸”切片,因此它可以用于多参数函数调用。所以上面的例子实际上应该扩展到foo("bar", "baz", "bla").
foo(stuff...) 按预期工作,这里没有意外,但在上面的示例中,编译器抱怨参数太多。
这是一个理想的限制吗?我来自 ruby 背景,其中 afoo("bar", *stuff)非常好(并且,至少在我的书中,是同一件事),这就是为什么这让我感到惊讶。
慕的地6264312
慕丝7291255
相关分类