gpt4 book ai didi

swift - 使用泛型调用具有相同参数但名称不同的另一个函数会在 Swift 中引发错误

转载 作者:行者123 更新时间:2023-11-28 05:35:06 25 4
gpt4 key购买 nike

我试图从 someMethodA 调用 someMethodB 并得到以下编译错误 Cannot convert the expression's type '$T2[]' to type 'T[]'

func someMethodA<T : Equatable>(array: T[], values: T...) -> T[] {
return self.someMethodB(array, values: values)
}

func someMethodB<T : Equatable>(array: T[], values: T...) -> T[] {
...
}

似乎是可变参数引起的问题。如何将转换为数组的值作为可变参数传递给 someMethodB?

最佳答案

MethodB 采用可变的第二个参数,但您要向它发送一个数组。您可以将 MethodB 的方法签名更改为:

someMethodB<T : Equatable>(array: T[], values: T[]) -> T[]{ /* code */ }

当您将可变参数传递给方法时,它会转换为数组。所以 values 实际上是 T[] 而不是 T...

编辑:如果您仍然需要一个带有可变参数的 someMethodB,您可以让它像这样调用带有数组的参数:

func someMethodB<T : Equatable>(array: T[], values: T...) -> T[] {
return someMethodB(array, values:values)
}

关于swift - 使用泛型调用具有相同参数但名称不同的另一个函数会在 Swift 中引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24093126/

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