gpt4 book ai didi

swift - 为什么转发可变参数无效?

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:24 25 4
gpt4 key购买 nike

考虑可变函数参数:

func foo(bar:Int...) -> () { }

这里的foo可以接受多个参数,例如foo(5,4)。我很好奇 Int... 的类型及其支持的操作。比如这个为什么无效?

func foo2(bar2:Int...) -> () {
foo(bar2);
}

报错:

Could not find an overload for '_conversion' that accepts the supplied arguments

为什么转发可变参数无效?

编译器提示的“转换”是什么?

最佳答案

当您调用 foo 时,编译器需要一系列参数,每个参数都必须是 Int

foo2 的主体中,bar2 总结了所有传递的参数,并且实际上具有类型 Int[] 用于所有实际目的。因此,您不能将它直接传递给 foo — 因为 foo 需要 Int 参数,而不是 Int[] .

至于解决方案:请参阅我对 this question 的回答.

关于swift - 为什么转发可变参数无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24047706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com