gpt4 book ai didi

ios - 数字协议(protocol)的通用扩展

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

我正在尝试使用一种将一种 Numeric 类型除以另一种相同类型的方法来扩展 Swift 的 Numeric 协议(protocol),如下所示:

extension Numeric {
func percentage<T>(of: T) -> T where T.Type == Self.Type {
return self / of
}
}

但是我得到了错误

Same-type requirement makes generic parameters 'T' and 'Self' equivalent

当它不是协议(protocol)扩展时它可以工作,但我很想知道是否可以将它作为扩展来做以及这个错误意味着什么。

这个有效:

func percentage<T: Numeric>(n1: T, n2: T) -> T {
return n1 / n2
}
let d = x(n1: 2.0, n2: 3.0)

最佳答案

不需要 T

extension Numeric {
func percentage<Self>(of whole: Self) -> Self {
return self / whole
}
}

关于ios - 数字协议(protocol)的通用扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56800099/

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