gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:44:16 24 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/41842980/

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