gpt4 book ai didi

swift - 如何从具有通用返回类型和 where 子句的方法返回值

转载 作者:行者123 更新时间:2023-11-28 12:13:25 24 4
gpt4 key购买 nike

我可以让一个函数返回一个具有通用返回类型的值,但是当我也使用 where 子句时我不能让它返回一个值。

这是我使用的代码:

func genericFunction<T: Collection>(collectionOne: T, collectionTwo: T) where T.Iterator.Element == (NSNumber) -> [Int] {


}

它编译正常。但是如果我尝试返回这个:

let array = [1]


return array

我得到这个错误:'unexpected non-void return type in void function' 但正如您从方法声明中看到的那样,有一个返回类型,所以我可能使用了错误的语法来声明该方法。

我应该使用什么语法从方法返回值?

提前致谢。

最佳答案

func genericFunction<T: Collection>(collectionOne: T, collectionTwo: T)
where T.Iterator.Element == (NSNumber) -> [Int]

定义一个返回 Void 的函数,带有约束

T.Iterator.Element == (NSNumber) -> [Int]

即元素类型限制为 (NSNumber) -> [Int] 闭包。

你可能想要的是

func genericFunction<T: Collection>(collectionOne: T, collectionTwo: T) -> [Int]
where T.Iterator.Element == (NSNumber)

这是一个返回[Int]的函数,元素类型限于 NSNumber

换句话说,where 子句在返回类型之后

关于swift - 如何从具有通用返回类型和 where 子句的方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47656493/

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