gpt4 book ai didi

swift - Swift 3 中泛型函数的问题

转载 作者:可可西里 更新时间:2023-11-01 00:21:27 24 4
gpt4 key购买 nike

假设这是我第一次尝试理解泛型函数,我想知道以下代码(Swift 3)有什么问题:

func isTgreatherthanU<T: Comparable, U: Comparable>(t: T, u: U) -> Bool {
return t > u
}

(我知道这是一个愚蠢的功能,但它只是为了了解如何编写通用代码。)

编译器说:

Binary operator '>' cannot be applied to operands of type 'T' and 'U'

我认为,通过声明 TU 符合 Comparable 协议(protocol),代码应该可以工作,但我显然做错了什么......有什么想法吗?

最佳答案

Comparable 类型的值可以与另一个值进行比较相同类型。在您的情况下,TU 不相关可能还有不同的类型。例如,您不能将 StringInt 进行比较即使两种类型都是 Comparable

你想要的是

func isTgreatherthanU<T: Comparable>(t: T, u: T) -> Bool {
return t > u
}

即两个参数都是 相同 类型 T 的值。

关于swift - Swift 3 中泛型函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488289/

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